Bug 283256
Summary: | webkitpy.benchmark_runner.browser_driver.browser_driver.BrowserDriver is meant to be abstract | ||
---|---|---|---|
Product: | WebKit | Reporter: | Sam Sneddon [:gsnedders] <gsnedders> |
Component: | Tools / Tests | Assignee: | Nobody <webkit-unassigned> |
Status: | NEW | ||
Severity: | Normal | CC: | clopez, dewei_zhu, hysu, simon.fraser, webkit-bug-importer |
Priority: | P2 | Keywords: | InRadar |
Version: | WebKit Nightly Build | ||
Hardware: | Unspecified | ||
OS: | Unspecified |
Sam Sneddon [:gsnedders]
This has had `___metaclass___ = ABCMeta` since 165969@main, but this never actually made it a metaclass: in Python 2, this needs to be __metaclass__ (note two, not three, underscores on either side of the word).
On Python 3, we need to change this more significantly:
```
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py
index a27563d7edc6..92eba4e30cb5 100755
--- a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py
@@ -8,10 +8,8 @@ _log = logging.getLogger(__name__)
-class BrowserDriver(object):
+class BrowserDriver(metaclass=ABCMeta):
platform = None
browser_name = None
- ___metaclass___ = ABCMeta
-
def __init__(self, browser_args):
self.browser_args = browser_args
```
However, this then shows we have much more significant problems with classes we're actually trying to use:
```
osx_chrome_driver.OSXChromeBetaDriver is missing ['add_additional_results', 'browser_version', 'launch_webdriver']
osx_chrome_driver.OSXChromeCanaryDriver is missing ['add_additional_results', 'browser_version', 'launch_webdriver']
osx_chrome_driver.OSXChromeDevDriver is missing ['add_additional_results', 'browser_version', 'launch_webdriver']
osx_chrome_driver.OSXChromeDriver is missing ['add_additional_results', 'browser_version', 'launch_webdriver']
osx_chrome_driver.OSXChromeForTestingDriver is missing ['add_additional_results', 'browser_version', 'launch_webdriver']
osx_chrome_driver.OSXChromiumDriver is missing ['add_additional_results', 'browser_version', 'launch_webdriver']
osx_firefox_driver.OSXFirefoxDriver is missing ['add_additional_results', 'browser_version', 'launch_webdriver']
osx_firefox_driver.OSXFirefoxNightlyDriver is missing ['add_additional_results', 'browser_version', 'launch_webdriver']
linux_epiphany_driver.EpiphanyBrowserDriver is missing ['add_additional_results', 'browser_version']
linux_cog_driver.CogBrowserDriver is missing ['add_additional_results', 'browser_version']
linux_minibrowserwpe_driver.WPEMiniBrowserDriver is missing ['add_additional_results', 'browser_version']
linux_firefox_driver.LinuxFirefoxDriver is missing ['add_additional_results', 'browser_version']
linux_minibrowsergtk_driver.GTKMiniBrowserDriver is missing ['add_additional_results', 'browser_version']
linux_chrome_driver.LinuxChromeDriver is missing ['add_additional_results']
osx_safari_driver.OSXSafariDriver is missing ['add_additional_results', 'browser_version', 'launch_webdriver']
webkitpy.browserperfdash.browserperfdash_unittest.FakeBrowserDriver is missing ['add_additional_results', 'browser_version']
```
Commits where we've broken the supposed contract are: add_additional_results (174940@main, Simon Fraser), launch_webdriver (191615@main), and browser_version (280585@main, Carlos López).
(Mostly filing this to have something to link at about why none of the @abstractmethod decorators do anything with tidying this up now Python 2 support is gone!)
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/140491913>