| # 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) |