X-Git-Url: https://git.madduck.net/etc/taskwarrior.git/blobdiff_plain/90d018e0f0c05ecbaed4699bc743b846abeafced..033ea1c349a1c8255667e9399e1dd41595863a6b:/tasklib/tests.py diff --git a/tasklib/tests.py b/tasklib/tests.py index 71ee90b..59bd78a 100644 --- a/tasklib/tests.py +++ b/tasklib/tests.py @@ -7,6 +7,7 @@ import json import pytz import six import shutil +import sys import tempfile import unittest @@ -36,6 +37,9 @@ TASK_STANDARD_ATTRS = ( 'annotations', ) +total_seconds_2_6 = lambda x: x.microseconds / 1e6 + x.seconds + x.days * 24 * 3600 + + class TasklibTest(unittest.TestCase): def setUp(self): @@ -287,13 +291,6 @@ class TaskTest(TasklibTest): self.assertRaises(Task.DeletedTask, t.done) - def test_start_completed_task(self): - t = Task(self.tw, description="test task") - t.save() - t.done() - - self.assertRaises(Task.CompletedTask, t.start) - def test_starting_task(self): t = Task(self.tw, description="test task") now = t.datetime_normalizer(datetime.datetime.now()) @@ -321,6 +318,18 @@ class TaskTest(TasklibTest): self.assertTrue(now.replace(microsecond=0) <= t['end']) self.assertEqual(t['status'], 'deleted') + def test_started_task_active(self): + t = Task(self.tw, description="test task") + t.save() + t.start() + self.assertTrue(t.active) + + def test_unstarted_task_inactive(self): + t = Task(self.tw, description="test task") + self.assertFalse(t.active) + t.save() + self.assertFalse(t.active) + def test_modify_simple_attribute_without_space(self): t = Task(self.tw, description="test") t.save() @@ -805,8 +814,12 @@ class DatetimeStringTest(TasklibTest): now = local_zone.localize(datetime.datetime.now()) # Assert that both times are not more than 5 seconds apart - self.assertTrue((now - t['due']).total_seconds() < 5) - self.assertTrue((t['due'] - now).total_seconds() < 5) + if sys.version_info < (2,7): + self.assertTrue(total_seconds_2_6(now - t['due']) < 5) + self.assertTrue(total_seconds_2_6(t['due'] - now) < 5) + else: + self.assertTrue((now - t['due']).total_seconds() < 5) + self.assertTrue((t['due'] - now).total_seconds() < 5) def test_simple_eoy_conversion(self): if self.tw.version < six.text_type('2.4.0'): @@ -842,15 +855,23 @@ class DatetimeStringTest(TasklibTest): now = local_zone.localize(datetime.datetime.now()) due_date = local_zone.localize(datetime.datetime( year=now.year, - month=9, - day=3, - hour=0, + month=12, + day=31, + hour=23, minute=59, second=59 - )) + )) - datetime.timedelta(0,4 * 30 * 86400) self.assertEqual(due_date, t['due']) def test_filtering_with_string_datetime(self): + if self.tw.version < six.text_type('2.4.0'): + # Python2.6 does not support SkipTest. As a workaround + # mark the test as passed by exiting. + if getattr(unittest, 'SkipTest', None) is not None: + raise unittest.SkipTest() + else: + return + t = Task(self.tw, description="test task", due=datetime.datetime.now() - datetime.timedelta(0,2)) t.save()