TI-90: Add test for 'continue' with range

This commit is contained in:
Thomas Lauf 2017-11-10 22:49:31 +01:00
parent 9173c86a65
commit e1a5319c0f

View file

@ -177,6 +177,62 @@ class TestContinue(TestCase):
self.assertTrue('tags' in j[2])
self.assertEqual(j[2]['tags'], ['FOO'])
def test_continue_with_id_and_range(self):
"""Verify that continue with a range adds a copy with same tags"""
now = datetime.now()
now_utc = now.utcnow()
one_hour_before = now - timedelta(hours=1)
two_hours_before = now - timedelta(hours=2)
three_hours_before = now - timedelta(hours=3)
four_hours_before = now - timedelta(hours=4)
five_hours_before = now - timedelta(hours=5)
code, out, err = self.t("start FOO {}T{:%H}:00:00".format(now.date(), five_hours_before))
self.assertIn("Tracking FOO\n", out)
code, out, err = self.t("stop {}T{:%H}:00:00".format(now.date(), four_hours_before))
self.assertIn("Recorded FOO\n", out)
code, out, err = self.t("start BAR {}T{:%H}:00:00".format(now.date(), four_hours_before))
self.assertIn("Tracking BAR\n", out)
code, out, err = self.t("stop {}T{:%H}:00:00".format(now.date(), three_hours_before))
self.assertIn("Recorded BAR\n", out)
self.t("continue @2 {0}T{1:%H}:00:00 - {0}T{2:%H}:00:00".format(now.date(), two_hours_before, one_hour_before))
j = self.t.export()
one_hour_before_utc = now_utc - timedelta(hours=1)
two_hours_before_utc = now_utc - timedelta(hours=2)
three_hours_before_utc = now_utc - timedelta(hours=3)
four_hours_before_utc = now_utc - timedelta(hours=4)
five_hours_before_utc = now_utc - timedelta(hours=5)
self.assertEqual(len(j), 3)
self.assertTrue('start' in j[0])
self.assertEqual(j[0]['start'], '{:%Y%m%dT%H}0000Z'.format(five_hours_before_utc), 'start time of first interval does not match: expected {:%Y%m%dT%H}0000Z, actual {}'.format(five_hours_before_utc, j[0]['start']))
self.assertTrue('end' in j[0])
self.assertEqual(j[0]['end'], '{:%Y%m%dT%H}0000Z'.format(four_hours_before_utc), 'end time of first interval does not match: expected {:%Y%m%dT%H}0000Z, actual {}'.format(four_hours_before_utc, j[0]['end']))
self.assertTrue('tags' in j[0])
self.assertEqual(j[0]['tags'], ['FOO'])
self.assertTrue('start' in j[1])
self.assertEqual(j[1]['start'], '{:%Y%m%dT%H}0000Z'.format(four_hours_before_utc), 'start time of second interval does not match: expected {:%Y%m%dT%H}0000Z, actual {}'.format(four_hours_before_utc, j[1]['start']))
self.assertTrue('end' in j[1])
self.assertEqual(j[1]['end'], '{:%Y%m%dT%H}0000Z'.format(three_hours_before_utc), 'end time of second interval does not match: expected {:%Y%m%dT%H}0000Z, actual {}'.format(three_hours_before_utc, j[1]['end']))
self.assertTrue('tags' in j[1])
self.assertEqual(j[1]['tags'], ['BAR'])
self.assertTrue('start' in j[2])
self.assertEqual(j[2]['start'], '{:%Y%m%dT%H}0000Z'.format(two_hours_before_utc), 'start time of added interval does not match: expected {:%Y%m%dT%H}0000Z, actual {}'.format(two_hours_before_utc, j[2]['start']))
self.assertTrue('end' in j[2])
self.assertEqual(j[2]['end'], '{:%Y%m%dT%H}0000Z'.format(one_hour_before_utc), 'end time of added interval does not match: expected {:%Y%m%dT%H}0000Z, actual {}'.format(one_hour_before_utc, j[2]['end']))
self.assertTrue('tags' in j[2])
self.assertEqual(j[2]['tags'], ['FOO'])
if __name__ == "__main__":
from simpletap import TAPTestRunner
unittest.main(testRunner=TAPTestRunner())