Add unit tests and fixes for increment_counts
This commit adds unit tests for the increment_counts function. In the process of writing them several bugs in the function were fixed too.
This commit is contained in:
parent
963f980ae0
commit
9dbaabf463
@ -69,12 +69,12 @@ def running_avg(test, values, result):
|
||||
return values
|
||||
|
||||
|
||||
def increment_counts(run, test, results, session):
|
||||
def increment_counts(test, results):
|
||||
test_values = {'run_count': test.run_count + 1}
|
||||
status = results.get('status')
|
||||
run = api.get_run_by_id(run.id, session)
|
||||
if status == 'success':
|
||||
test_values['success'] = test.success + 1
|
||||
test_values = running_avg(test, test_values, results)
|
||||
elif status == 'fail':
|
||||
test_values['failure'] = test.failure + 1
|
||||
elif status == 'skip':
|
||||
@ -82,7 +82,6 @@ def increment_counts(run, test, results, session):
|
||||
else:
|
||||
msg = "Unknown test status %s" % status
|
||||
raise exceptions.UnknownStatus(msg)
|
||||
test_values = running_avg(test, test_values, results)
|
||||
return test_values
|
||||
|
||||
|
||||
@ -125,8 +124,7 @@ def process_results(results):
|
||||
fails, run_time,
|
||||
session)
|
||||
else:
|
||||
test_values = increment_counts(db_run, db_test, results[test],
|
||||
session)
|
||||
test_values = increment_counts(db_test, results[test])
|
||||
# If skipped nothing to update
|
||||
if test_values:
|
||||
api.update_test(test_values, db_test.id, session)
|
||||
|
@ -17,6 +17,7 @@ import datetime
|
||||
|
||||
import mock
|
||||
|
||||
from subunit2sql import exceptions
|
||||
from subunit2sql import shell
|
||||
from subunit2sql.tests import base
|
||||
|
||||
@ -68,3 +69,64 @@ class TestShell(base.TestCase):
|
||||
result = shell.running_avg(fake_test, fake_values, fake_result)
|
||||
expected_avg = 50
|
||||
self.assertEqual(expected_avg, result['run_time'])
|
||||
|
||||
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 incrememented 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_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 incrememented 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_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 incrememented with a skip
|
||||
self.assertEqual(values, {})
|
||||
|
||||
def test_increment_counts_unknown_status(self):
|
||||
fake_test = mock.MagicMock()
|
||||
fake_result = {
|
||||
'status': 'explody',
|
||||
'start_time': datetime.datetime(1914, 6, 28, 10, 45, 0),
|
||||
'end_time': datetime.datetime(1914, 6, 28, 10, 45, 2),
|
||||
}
|
||||
self.assertRaises(exceptions.UnknownStatus,
|
||||
shell.increment_counts, fake_test, fake_result)
|
||||
|
Loading…
x
Reference in New Issue
Block a user