def test_find_subclasses_in_module_when_only_some_base_classes_present(self): subclasses = utils.find_subclasses_in_module( [signals.TestSignal, test_runner.TestRunner], multiple_subclasses_module) self.assertEqual(len(subclasses), 2) self.assertIn(multiple_subclasses_module.Subclass1Runner, subclasses) self.assertIn(multiple_subclasses_module.Subclass2Runner, subclasses)
def test_find_subclasses_in_module_when_multiple_base_classes(self): subclasses = utils.find_subclasses_in_module( [base_test.BaseTestClass, test_runner.TestRunner], multiple_subclasses_module) self.assertEqual(len(subclasses), 4) self.assertIn(multiple_subclasses_module.Subclass1Test, subclasses) self.assertIn(multiple_subclasses_module.Subclass2Test, subclasses) self.assertIn(multiple_subclasses_module.Subclass1Runner, subclasses) self.assertIn(multiple_subclasses_module.Subclass2Runner, subclasses)
def _find_test_class(): """Finds the test class in a test script. Walk through module members and find the subclass of MatterBaseTest. 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. """ subclasses = utils.find_subclasses_in_module([MatterBaseTest], sys.modules['__main__']) subclasses = [c for c in subclasses if c.__name__ != "MatterBaseTest"] if len(subclasses) != 1: print( 'Exactly one subclass of `MatterBaseTest` should be in the main file. Found %s.' % str([subclass.__name__ for subclass in subclasses])) sys.exit(1) return subclasses[0]
def test_find_subclasses_in_module_when_multiple_subclasses(self): subclasses = utils.find_subclasses_in_module( [base_test.BaseTestClass], multiple_subclasses_module) self.assertEqual(len(subclasses), 2) self.assertIn(multiple_subclasses_module.Subclass1Test, subclasses) self.assertIn(multiple_subclasses_module.Subclass2Test, subclasses)
def test_find_subclasses_in_module_when_no_subclasses(self): subclasses = utils.find_subclasses_in_module([base_test.BaseTestClass], mock_controller) self.assertEqual(len(subclasses), 0)
def test_find_subclasses_in_module_when_indirect_subclass(self): subclasses = utils.find_subclasses_in_module([base_test.BaseTestClass], mock_instrumentation_test) self.assertEqual(len(subclasses), 1) self.assertEqual(subclasses[0], mock_instrumentation_test.MockInstrumentationTest)
def test_find_subclasses_in_module_when_one_subclass(self): subclasses = utils.find_subclasses_in_module([base_test.BaseTestClass], integration_test) self.assertEqual(len(subclasses), 1) self.assertEqual(subclasses[0], integration_test.IntegrationTest)