mirror of
https://github.com/GothenburgBitFactory/timewarrior.git
synced 2025-06-26 10:54:28 +02:00
TI-90: Add test for 'continue' with range
This commit is contained in:
parent
9173c86a65
commit
e1a5319c0f
1 changed files with 56 additions and 0 deletions
|
@ -177,6 +177,62 @@ class TestContinue(TestCase):
|
||||||
self.assertTrue('tags' in j[2])
|
self.assertTrue('tags' in j[2])
|
||||||
self.assertEqual(j[2]['tags'], ['FOO'])
|
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__":
|
if __name__ == "__main__":
|
||||||
from simpletap import TAPTestRunner
|
from simpletap import TAPTestRunner
|
||||||
unittest.main(testRunner=TAPTestRunner())
|
unittest.main(testRunner=TAPTestRunner())
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue