summaryrefslogtreecommitdiffstats
path: root/testing/mozbase/mozdevice/sut_tests/dmunit.py
diff options
context:
space:
mode:
Diffstat (limited to 'testing/mozbase/mozdevice/sut_tests/dmunit.py')
-rw-r--r--testing/mozbase/mozdevice/sut_tests/dmunit.py55
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)