Example #1
0
 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)
Example #2
0
 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]
Example #4
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)
Example #5
0
 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)
Example #6
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)
Example #7
0
 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)