def test_find_subclass_in_module_when_no_subclasses(self): with self.assertRaisesRegex( ValueError, '.*Expected 1 subclass of BaseTestClass per module, found' r' \[\].*'): _ = utils.find_subclass_in_module(base_test.BaseTestClass, mock_controller)
def test_find_subclass_in_module_when_multiple_subclasses(self): with self.assertRaisesRegex( ValueError, '.*Expected 1 subclass of BaseTestClass per module, found' r' \[(\'Subclass1Test\', \'Subclass2Test\'' r'|\'Subclass2Test\', \'Subclass1Test\')\].*'): _ = utils.find_subclass_in_module(base_test.BaseTestClass, multiple_subclasses_module)
def _find_test_class(): """Finds the test class in a test script. Walk through module members and find the subclass of BaseTestClass. Only one subclass is allowed in a test script. Returns: The test class in the test module. Raises: SystemExit: Raised if the number of test classes is not exactly one. """ try: return utils.find_subclass_in_module(base_test.BaseTestClass, sys.modules['__main__']) except ValueError: logging.exception('Exactly one subclass of `base_test.BaseTestClass`' ' should be in the main file.') sys.exit(1)
def test_find_subclass_in_module_when_indirect_subclass(self): subclass = utils.find_subclass_in_module(base_test.BaseTestClass, mock_instrumentation_test) self.assertEqual(subclass, mock_instrumentation_test.MockInstrumentationTest)
def test_find_subclass_in_module_when_one_subclass(self): subclass = utils.find_subclass_in_module(base_test.BaseTestClass, integration_test) self.assertEqual(subclass, integration_test.IntegrationTest)