diff options
Diffstat (limited to 'testing/mozbase/mozdevice/sut_tests/dmunit.py')
-rw-r--r-- | testing/mozbase/mozdevice/sut_tests/dmunit.py | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/testing/mozbase/mozdevice/sut_tests/dmunit.py b/testing/mozbase/mozdevice/sut_tests/dmunit.py new file mode 100644 index 000000000..b4a3d0b9b --- /dev/null +++ b/testing/mozbase/mozdevice/sut_tests/dmunit.py @@ -0,0 +1,55 @@ +# 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/. + +import logging +import types +import unittest + +from mozdevice import devicemanager +from mozdevice import devicemanagerSUT + +ip = '' +port = 0 +heartbeat_port = 0 +log_level = logging.ERROR + + +class DeviceManagerTestCase(unittest.TestCase): + """DeviceManager tests should subclass this. + """ + + """Set to False in your derived class if this test + should not be run on the Python agent. + """ + runs_on_test_device = True + + def _setUp(self): + """ Override this if you want set-up code in your test.""" + return + + def setUp(self): + self.dm = devicemanagerSUT.DeviceManagerSUT(host=ip, port=port, + logLevel=log_level) + self.dmerror = devicemanager.DMError + self._setUp() + + +class DeviceManagerTestLoader(unittest.TestLoader): + + def __init__(self, isTestDevice=False): + self.isTestDevice = isTestDevice + + def loadTestsFromModuleName(self, module_name): + """Loads tests from modules unless the SUT is a test device and + the test case has runs_on_test_device set to False + """ + tests = [] + module = __import__(module_name) + for name in dir(module): + obj = getattr(module, name) + if (isinstance(obj, (type, types.ClassType)) and + issubclass(obj, unittest.TestCase)) and \ + (not self.isTestDevice or obj.runs_on_test_device): + tests.append(self.loadTestsFromTestCase(obj)) + return self.suiteClass(tests) |