Make get_duration return the proper type
The get_duration code was borrowed from tempest's subunit-trace script which had it return a string marking it in secs. However, a float was the proper type for the variable. So instead of converting the return for every instance just have it return the proper type.
This commit is contained in:
parent
423d13aff2
commit
963f980ae0
@ -22,12 +22,12 @@ DAY_SECONDS = 60 * 60 * 24
|
||||
|
||||
def get_duration(start, end):
|
||||
if not start or not end:
|
||||
duration = ''
|
||||
duration = None
|
||||
else:
|
||||
delta = end - start
|
||||
duration = '%d.%06ds' % (
|
||||
duration = '%d.%06d' % (
|
||||
delta.days * DAY_SECONDS + delta.seconds, delta.microseconds)
|
||||
return duration
|
||||
return float(duration)
|
||||
|
||||
|
||||
class ReadSubunit(object):
|
||||
@ -112,6 +112,5 @@ class ReadSubunit(object):
|
||||
def run_time(self):
|
||||
runtime = 0.0
|
||||
for name, data in self.results.items():
|
||||
runtime += float(get_duration(data['start_time'],
|
||||
data['end_time']).strip('s'))
|
||||
runtime += get_duration(data['start_time'], data['end_time'])
|
||||
return runtime
|
||||
|
@ -58,8 +58,8 @@ def parse_args(argv, default_config_files=None):
|
||||
def running_avg(test, values, result):
|
||||
count = test.success
|
||||
avg_prev = test.run_time
|
||||
curr_runtime = float(subunit.get_duration(result['start_time'],
|
||||
result['end_time']).strip('s'))
|
||||
curr_runtime = subunit.get_duration(result['start_time'],
|
||||
result['end_time'])
|
||||
if isinstance(avg_prev, float):
|
||||
# Using a smoothed moving avg to limit the affect of a single outlier
|
||||
new_avg = ((count * avg_prev) + curr_runtime) / (count + 1)
|
||||
@ -119,13 +119,8 @@ def process_results(results):
|
||||
else:
|
||||
fails = 0
|
||||
success = 0
|
||||
run_time = subunit.get_duration(
|
||||
results[test]['start_time'],
|
||||
results[test]['end_time']).strip('s')
|
||||
if run_time:
|
||||
run_time = float(run_time)
|
||||
else:
|
||||
run_time = None
|
||||
run_time = subunit.get_duration(results[test]['start_time'],
|
||||
results[test]['end_time'])
|
||||
db_test = api.create_test(test, (success + fails), success,
|
||||
fails, run_time,
|
||||
session)
|
||||
|
@ -23,4 +23,14 @@ class TestReadSubunit(base.TestCase):
|
||||
def test_get_duration(self):
|
||||
dur = subunit.get_duration(datetime.datetime(1914, 6, 28, 10, 45, 0),
|
||||
datetime.datetime(1914, 6, 28, 10, 45, 50))
|
||||
self.assertEqual(dur, '50.000000s')
|
||||
self.assertEqual(dur, 50.000000)
|
||||
|
||||
def test_get_duration_no_start(self):
|
||||
dur = subunit.get_duration(None,
|
||||
datetime.datetime(1914, 6, 28, 10, 45, 50))
|
||||
self.assertIsNone(dur)
|
||||
|
||||
def test_get_duration_no_end(self):
|
||||
dur = subunit.get_duration(datetime.datetime(1914, 6, 28, 10, 45, 50),
|
||||
None)
|
||||
self.assertIsNone(dur)
|
||||
|
Loading…
x
Reference in New Issue
Block a user