def test_result_add_operator_success(self):
     record1 = records.TestResultRecord(self.tn)
     record1.test_begin()
     s = signals.TestPass(self.details, self.float_extra)
     record1.test_pass(s)
     tr1 = records.TestResult()
     tr1.add_record(record1)
     record2 = records.TestResultRecord(self.tn)
     record2.test_begin()
     s = signals.TestPass(self.details, self.json_extra)
     record2.test_pass(s)
     tr2 = records.TestResult()
     tr2.add_record(record2)
     tr2 += tr1
     self.assertTrue(tr2.passed, [tr1, tr2])
예제 #2
0
 def __init__(self, test_configs, run_list):
     self.test_run_info = {}
     self.test_configs = test_configs
     self.testbed_configs = self.test_configs[keys.Config.key_testbed.value]
     self.testbed_name = self.testbed_configs[
         keys.Config.key_testbed_name.value]
     start_time = logger.get_log_file_timestamp()
     self.id = "{}@{}".format(self.testbed_name, start_time)
     # log_path should be set before parsing configs.
     l_path = os.path.join(
         self.test_configs[keys.Config.key_log_path.value],
         self.testbed_name, start_time)
     self.log_path = os.path.abspath(l_path)
     logger.setup_test_logger(self.log_path, self.testbed_name)
     self.log = logging.getLogger()
     self.controller_registry = {}
     if self.test_configs.get(keys.Config.key_random.value):
         test_case_iterations = self.test_configs.get(
             keys.Config.key_test_case_iterations.value, 10)
         self.log.info(
             "Campaign randomizer is enabled with test_case_iterations %s",
             test_case_iterations)
         self.run_list = config_parser.test_randomizer(
             run_list, test_case_iterations=test_case_iterations)
         self.write_test_campaign()
     else:
         self.run_list = run_list
     self.results = records.TestResult()
     self.running = False
예제 #3
0
 def test_result_add_operator_success(self):
     record1 = records.TestResultRecord(self.tn)
     record1.test_begin()
     s = signals.TestPass(self.details, self.float_extra)
     record1.test_pass(s)
     tr1 = records.TestResult()
     tr1.add_record(record1)
     tr1.add_controller_info("MockDevice", ["magicA", "magicB"])
     record2 = records.TestResultRecord(self.tn)
     record2.test_begin()
     s = signals.TestPass(self.details, self.json_extra)
     record2.test_pass(s)
     tr2 = records.TestResult()
     tr2.add_record(record2)
     tr2.add_controller_info("MockDevice", ["magicC"])
     tr2 += tr1
     self.assertTrue(tr2.passed, [tr1, tr2])
     self.assertTrue(tr2.controller_info, {"MockDevice": ["magicC"]})
예제 #4
0
 def __init__(self, configs):
     self.tests = []
     if not self.TAG:
         self.TAG = self.__class__.__name__
     # Set all the controller objects and params.
     for name, value in configs.items():
         setattr(self, name, value)
     self.results = records.TestResult()
     self.current_test_name = None
예제 #5
0
 def test_result_add_operator_type_mismatch(self):
     record1 = records.TestResultRecord(self.tn)
     record1.test_begin()
     s = signals.TestPass(self.details, self.float_extra)
     record1.test_pass(s)
     tr1 = records.TestResult()
     tr1.add_record(record1)
     expected_msg = "Operand .* of type .* is not a TestResult."
     with self.assertRaisesRegexp(TypeError, expected_msg):
         tr1 += "haha"
 def test_is_all_pass_with_fail_class(self):
     """Verifies that is_all_pass yields correct value when fail_class is
     used.
     """
     record1 = records.TestResultRecord(self.tn)
     record1.test_begin()
     record1.test_fail(Exception("haha"))
     tr = records.TestResult()
     tr.fail_class(record1)
     self.assertFalse(tr.is_all_pass)
예제 #7
0
 def test_result_add_operator_success(self):
     record1 = records.TestResultRecord(self.tn)
     record1.test_begin()
     s = signals.TestPass(self.details, self.float_extra)
     record1.test_pass(s)
     tr1 = records.TestResult()
     tr1.add_record(record1)
     device1 = ControllerInfoRecord('TestClass', 'MockDevice', 'device1')
     tr1.add_controller_info_record(device1)
     record2 = records.TestResultRecord(self.tn)
     record2.test_begin()
     s = signals.TestPass(self.details, self.json_extra)
     record2.test_pass(s)
     tr2 = records.TestResult()
     tr2.add_record(record2)
     device2 = ControllerInfoRecord('TestClass', 'MockDevice', 'device2')
     tr2.add_controller_info_record(device2)
     tr2 += tr1
     self.assertTrue(tr2.passed, [tr1, tr2])
     self.assertTrue(tr2.controller_info, [device1, device2])
예제 #8
0
 def test_is_all_pass_negative(self):
     s = signals.TestFailure(self.details, self.float_extra)
     record1 = records.TestResultRecord(self.tn)
     record1.test_begin()
     record1.test_fail(s)
     record2 = records.TestResultRecord(self.tn)
     record2.test_begin()
     record2.test_error(s)
     tr = records.TestResult()
     tr.add_record(record1)
     tr.add_record(record2)
     self.assertFalse(tr.is_all_pass)
 def test_result_fail_class_with_test_signal(self):
     record1 = records.TestResultRecord(self.tn)
     record1.test_begin()
     s = signals.TestPass(self.details, self.float_extra)
     record1.test_pass(s)
     tr = records.TestResult()
     tr.add_record(record1)
     s = signals.TestFailure(self.details, self.float_extra)
     record2 = records.TestResultRecord("SomeTest", s)
     tr.fail_class(record2)
     self.assertEqual(len(tr.passed), 1)
     self.assertEqual(len(tr.failed), 1)
     self.assertEqual(len(tr.executed), 2)
예제 #10
0
 def test_is_all_pass(self):
     s = signals.TestPass(self.details, self.float_extra)
     record1 = records.TestResultRecord(self.tn)
     record1.test_begin()
     record1.test_pass(s)
     s = signals.TestSkip(self.details, self.float_extra)
     record2 = records.TestResultRecord(self.tn)
     record2.test_begin()
     record2.test_skip(s)
     tr = records.TestResult()
     tr.add_record(record1)
     tr.add_record(record2)
     tr.add_record(record1)
     self.assertEqual(len(tr.passed), 2)
     self.assertTrue(tr.is_all_pass)
 def __init__(self, configs):
     self.tests = []
     if not self.TAG:
         self.TAG = self.__class__.__name__
     # Set all the controller objects and params.
     for name, value in configs.items():
         setattr(self, name, value)
     self.results = records.TestResult()
     self.current_test_name = None
     self.log = tracelogger.TraceLogger(self.log)
     if 'android_devices' in self.__dict__:
         for ad in self.android_devices:
             if ad.droid:
                 utils.set_location_service(ad, False)
                 utils.sync_device_time(ad)
예제 #12
0
 def __init__(self, test_configs, run_list):
     self.test_run_config = test_configs
     self.testbed_name = self.test_run_config.testbed_name
     start_time = logger.get_log_file_timestamp()
     self.id = '{}@{}'.format(self.testbed_name, start_time)
     self.test_run_config.log_path = os.path.abspath(
         os.path.join(self.test_run_config.log_path, self.testbed_name,
                      start_time))
     logger.setup_test_logger(self.log_path, self.testbed_name)
     self.log = logging.getLogger()
     self.test_run_config.summary_writer = records.TestSummaryWriter(
         os.path.join(self.log_path, records.OUTPUT_FILE_SUMMARY))
     self.run_list = run_list
     self.dump_config()
     self.results = records.TestResult()
     self.running = False
     self.usage_publisher = UsageMetadataPublisher()
 def __init__(self, test_configs, run_list):
     self.test_run_info = {}
     self.test_configs = test_configs
     self.testbed_configs = self.test_configs[keys.Config.key_testbed.value]
     self.testbed_name = self.testbed_configs[
         keys.Config.key_testbed_name.value]
     start_time = logger.get_log_file_timestamp()
     self.id = "{}@{}".format(self.testbed_name, start_time)
     # log_path should be set before parsing configs.
     l_path = os.path.join(
         self.test_configs[keys.Config.key_log_path.value],
         self.testbed_name, start_time)
     self.log_path = os.path.abspath(l_path)
     logger.setup_test_logger(self.log_path, self.testbed_name)
     self.log = logging.getLogger()
     self.controller_registry = {}
     self.controller_destructors = {}
     self.run_list = run_list
     self.results = records.TestResult()
     self.running = False
    def test_result_fail_class_with_special_error(self):
        """Call TestResult.fail_class with an error class that requires more
        than one arg to instantiate.
        """
        record1 = records.TestResultRecord(self.tn)
        record1.test_begin()
        s = signals.TestPass(self.details, self.float_extra)
        record1.test_pass(s)
        tr = records.TestResult()
        tr.add_record(record1)

        class SpecialError(Exception):
            def __init__(self, arg1, arg2):
                self.msg = "%s %s" % (arg1, arg2)

        se = SpecialError("haha", 42)
        record2 = records.TestResultRecord("SomeTest", se)
        tr.fail_class(record2)
        self.assertEqual(len(tr.passed), 1)
        self.assertEqual(len(tr.failed), 1)
        self.assertEqual(len(tr.executed), 2)