Bug 1284874 - Add 'package' argument to Marionette Test Runner; r?AutomatedTester draft
authorMaja Frydrychowicz <mjzffr@gmail.com>
Mon, 25 Jul 2016 20:43:57 -0400
changeset 405502 88e7b1227df6ca8498d9f861ee8af53e32a25ba9
parent 405501 1f9f10f77a9539b8dfa3eda7da93c0dfb1401a4a
child 405503 8682ada4759d3b21e18b3d51946eda25e52b52a1
push id27507
push usermjzffr@gmail.com
push dateThu, 25 Aug 2016 15:12:45 +0000
reviewersAutomatedTester
bugs1284874
milestone51.0a1
Bug 1284874 - Add 'package' argument to Marionette Test Runner; r?AutomatedTester This is useful for overriding the computed Android package name in automation. MozReview-Commit-ID: jm283iQB2i
testing/marionette/client/marionette_driver/geckoinstance.py
testing/marionette/harness/marionette/runner/base.py
testing/marionette/harness/marionette/tests/harness_unit/test_marionette_runner.py
--- a/testing/marionette/client/marionette_driver/geckoinstance.py
+++ b/testing/marionette/client/marionette_driver/geckoinstance.py
@@ -182,21 +182,21 @@ class GeckoInstance(object):
         else:
             self.prefs = None
         self.start()
 
 
 class FennecInstance(GeckoInstance):
     def __init__(self, emulator_binary=None, avd_home=None, avd=None,
                  adb_path=None, serial=None, connect_to_running_emulator=False,
-                 *args, **kwargs):
+                 package_name=None, *args, **kwargs):
         super(FennecInstance, self).__init__(*args, **kwargs)
         self.runner_class = FennecEmulatorRunner
         # runner args
-        self._package_name = None
+        self._package_name = package_name
         self.emulator_binary = emulator_binary
         self.avd_home = avd_home
         self.adb_path = adb_path
         self.avd = avd
         self.serial = serial
         self.connect_to_running_emulator = connect_to_running_emulator
 
     @property
--- a/testing/marionette/harness/marionette/runner/base.py
+++ b/testing/marionette/harness/marionette/runner/base.py
@@ -476,16 +476,21 @@ class RemoteMarionetteArguments(object):
         [['--avd-home'],
          {'help': 'Path to avd parent directory',
           }],
         [['--device'],
          {'help': ('Serial ID to connect to as seen in `adb devices`,'
                    'e.g emulator-5444'),
           'dest': 'device_serial',
           }],
+        [['--package'],
+         {'help': 'Name of Android package, e.g. org.mozilla.fennec',
+          'dest': 'package_name',
+          }],
+
     ]
 
 class BaseMarionetteTestRunner(object):
 
     textrunnerclass = MarionetteTextTestRunner
     driverclass = Marionette
 
     def __init__(self, address=None,
@@ -711,16 +716,17 @@ class BaseMarionetteTestRunner(object):
         })
 
         if self.emulator:
             kwargs.update({
                 'avd_home': self.extra_kwargs.get('avd_home'),
                 'adb_path': self.extra_kwargs.get('adb_path'),
                 'emulator_binary': self.extra_kwargs.get('emulator_bin'),
                 'avd': self.extra_kwargs.get('avd'),
+                'package_name': self.extra_kwargs.get('package_name'),
             })
 
         if self.address:
             host, port = self.address.split(':')
             kwargs.update({
                 'host': host,
                 'port': int(port),
             })
--- a/testing/marionette/harness/marionette/tests/harness_unit/test_marionette_runner.py
+++ b/testing/marionette/harness/marionette/tests/harness_unit/test_marionette_runner.py
@@ -95,16 +95,17 @@ def mach_parsed_kwargs(logger):
         'log_raw_level': None,
         'log_tbpl': None,
         'log_tbpl_buffer': None,
         'log_tbpl_compact': None,
         'log_tbpl_level': None,
         'log_unittest': None,
         'log_xunit': None,
         'logger_name': 'Marionette-based Tests',
+        'package_name': None,
         'prefs': {
             'browser.tabs.remote.autostart': True,
             'browser.tabs.remote.force-enable': True,
             'extensions.e10sBlocksEnabling': False,
         },
         'prefs_args': None,
         'prefs_files': None,
         'profile': None,