def test_increment_counts_skip(self): fake_test = mock.MagicMock() fake_test.run_count = 15 fake_test.success = 5 fake_test.failure = 10 fake_test.run_time = 45.0 fake_result = { 'status': 'skip', 'start_time': datetime.datetime(1914, 6, 28, 10, 45, 0), 'end_time': datetime.datetime(1914, 6, 28, 10, 45, 2), } values = shell.increment_counts(fake_test, fake_result) # No test counts incremented with a skip self.assertEqual(values, {})
def test_increment_counts_failure(self): fake_test = mock.MagicMock() fake_test.run_count = 15 fake_test.success = 5 fake_test.failure = 10 fake_test.run_time = 45.0 fake_result = { 'status': 'fail', 'start_time': datetime.datetime(1914, 6, 28, 10, 45, 0), 'end_time': datetime.datetime(1914, 6, 28, 10, 45, 50), } values = shell.increment_counts(fake_test, fake_result) # Check to ensure counts incremented properly self.assertEqual(values['run_count'], 16) self.assertEqual(values['failure'], 11) # Avg runtime should only be updated on success self.assertNotIn('run_time', values)
def test_increment_counts_success(self): fake_test = mock.MagicMock() fake_test.run_count = 15 fake_test.success = 5 fake_test.run_time = 45.0 fake_result = { 'status': 'success', 'start_time': datetime.datetime(1914, 6, 28, 10, 45, 0), 'end_time': datetime.datetime(1914, 6, 28, 10, 45, 50), } values = shell.increment_counts(fake_test, fake_result) # Check to ensure counts incremented properly self.assertEqual(values['run_count'], 16) self.assertEqual(values['success'], 6) # Ensure run_time is updated on success expected_avg = ((5 * 45.0) + 50) / 6 self.assertEqual(values['run_time'], expected_avg)
def test_increment_counts_uxsuccess(self): fake_test = mock.MagicMock() fake_test.run_count = 15 fake_test.success = 5 fake_test.failure = 10 fake_test.run_time = 45.0 fake_result = { 'status': 'uxsuccess', 'start_time': datetime.datetime(1914, 6, 28, 10, 45, 0), 'end_time': datetime.datetime(1914, 6, 28, 10, 45, 50), } values = shell.increment_counts(fake_test, fake_result) # Check to ensure counts incremented properly self.assertEqual(values['run_count'], 16) self.assertEqual(values['failure'], 11) # Avg runtime should only be updated on success self.assertNotIn('run_time', values)
def test_increment_counts_success_xfail(self): fake_test = mock.MagicMock() fake_test.run_count = 15 fake_test.success = 5 fake_test.run_time = 45.0 fake_result = { 'status': 'xfail', 'start_time': datetime.datetime(1914, 6, 28, 10, 45, 0), 'end_time': datetime.datetime(1914, 6, 28, 10, 45, 50), } values = shell.increment_counts(fake_test, fake_result) # Check to ensure counts incremented properly self.assertEqual(values['run_count'], 16) self.assertEqual(values['success'], 6) # Ensure run_time is updated on success expected_avg = ((5 * 45.0) + 50) / 6 self.assertEqual(values['run_time'], expected_avg)
def _update_test(self, test_dict, session, start_time, stop_time): test_id = utils.cleanup_test_name(test_dict['id']) db_test = db_api.get_test_by_test_id(test_id, session) if not db_test: if test_dict['status'] == 'success': success = 1 fails = 0 elif test_dict['status'] == 'fail': fails = 1 success = 0 else: fails = 0 success = 0 run_time = read_subunit.get_duration(start_time, stop_time) db_test = db_api.create_test(test_id, (success + fails), success, fails, run_time, session) else: test_dict['start_time'] = start_time test_dict['end_time'] = stop_time test_values = shell.increment_counts(db_test, test_dict) # If skipped nothing to update if test_values: db_api.update_test(test_values, db_test.id, session) return db_test