зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1358670 - Implemented MarionetteHarness in telemetry-harness r=whimboo
Added changes to testcase.py for change server root Added testvar to pass server_root from command line of telemetry-harness to testcase class. Added argument.py and runner.py to implement MarionetteHarness in the test job Changed test name in manifest.ini MozReview-Commit-ID: 4XpBvq6Skz6 --HG-- extra : rebase_source : ab3f9d8ce95186fb9fba0eda0c4624eed837f298
This commit is contained in:
Родитель
bcf6ef6a17
Коммит
9dd142d73f
|
@ -0,0 +1,2 @@
|
|||
exclude MANIFEST.in
|
||||
include requirements.txt
|
|
@ -1,3 +0,0 @@
|
|||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
@ -0,0 +1,20 @@
|
|||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
|
||||
from marionette_harness import BaseMarionetteTestRunner
|
||||
from testcase import TelemetryTestCase
|
||||
|
||||
|
||||
class TelemetryTestRunner(BaseMarionetteTestRunner):
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
super(TelemetryTestRunner, self).__init__(**kwargs)
|
||||
self.server_root = kwargs.pop('server_root')
|
||||
self.testvars['server_root'] = self.server_root
|
||||
|
||||
# select the appropriate GeckoInstance
|
||||
self.app = 'fxdesktop'
|
||||
|
||||
self.test_handlers = [TelemetryTestCase]
|
|
@ -3,11 +3,12 @@
|
|||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
from marionette_harness.runtests import cli as mn_cli
|
||||
from testcase import TelemetryTestCase
|
||||
from runner import TelemetryTestRunner
|
||||
|
||||
|
||||
def cli():
|
||||
mn_cli(testcase_class=TelemetryTestCase)
|
||||
def cli(args=None):
|
||||
mn_cli(runner_class=TelemetryTestRunner,
|
||||
args=args)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
|
@ -16,20 +16,17 @@ from marionette_driver.wait import Wait
|
|||
from marionette_harness import MarionetteTestCase
|
||||
from marionette_harness.runner import httpd
|
||||
|
||||
here = os.path.abspath(os.path.dirname(__file__))
|
||||
doc_root = os.path.join(os.path.dirname(here), "www")
|
||||
resources_dir = os.path.join(os.path.dirname(here), "resources")
|
||||
|
||||
|
||||
class TelemetryTestCase(PuppeteerMixin, MarionetteTestCase):
|
||||
|
||||
ping_list = []
|
||||
|
||||
def setUp(self, *args, **kwargs):
|
||||
super(TelemetryTestCase, self).setUp()
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(TelemetryTestCase, self).__init__(*args, **kwargs)
|
||||
|
||||
# Start and configure server
|
||||
self.httpd = httpd.FixtureServer(doc_root)
|
||||
def setUp(self, *args, **kwargs):
|
||||
super(TelemetryTestCase, self).setUp(*args, **kwargs)
|
||||
self.httpd = httpd.FixtureServer(self.testvars['server_root'])
|
||||
ping_route = [("POST", re.compile('/pings'), self.pings)]
|
||||
self.httpd.routes.extend(ping_route)
|
||||
self.httpd.start()
|
||||
|
@ -51,9 +48,11 @@ class TelemetryTestCase(PuppeteerMixin, MarionetteTestCase):
|
|||
self.marionette.enforce_gecko_prefs(telemetry_prefs)
|
||||
|
||||
def wait_for_ping(self, ping_filter_func):
|
||||
current_ping_list_size = len(self.ping_list)
|
||||
if len(self.ping_list) == 0:
|
||||
try:
|
||||
Wait(self.marionette, 60).until(lambda t: len(self.ping_list) > 0)
|
||||
Wait(self.marionette, 60).until(lambda _:
|
||||
len(self.ping_list) > current_ping_list_size)
|
||||
except Exception as e:
|
||||
self.fail('Error generating ping: {}'.format(e.message))
|
||||
|
||||
|
@ -81,7 +80,8 @@ class TelemetryTestCase(PuppeteerMixin, MarionetteTestCase):
|
|||
# Developed by: MozillaOnline
|
||||
# Addon URL: https://addons.mozilla.org/en-US/firefox/addon/easyscreenshot/
|
||||
try:
|
||||
addon_path = os.path.join(resources_dir, 'easyscreenshot.xpi')
|
||||
# TODO: Replace Resources_dir with default directory
|
||||
addon_path = os.path.join('resources_dir', 'easyscreenshot.xpi')
|
||||
addons = Addons(self.marionette)
|
||||
addons.install(addon_path)
|
||||
except MarionetteException as e:
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[DEFAULT]
|
||||
tags = client
|
||||
|
||||
[test_main_ping_addon_install_tab_window_scalars.py]
|
||||
[test_main_tab_scalars.py]
|
Загрузка…
Ссылка в новой задаче