X-Git-Url: https://git.madduck.net/etc/taskwarrior.git/blobdiff_plain/b0013c774cf1667bbde77a5515984e27635dfc1f..0d729dfb9cf1c14f8dbda6e072ca1d7a9bb074ac:/tasklib/tests.py diff --git a/tasklib/tests.py b/tasklib/tests.py index f63fbb4..fa4e5f3 100644 --- a/tasklib/tests.py +++ b/tasklib/tests.py @@ -11,7 +11,9 @@ import sys import tempfile import unittest -from .task import TaskWarrior, Task, ReadOnlyDictView, local_zone, DATE_FORMAT +from .backends import TaskWarrior +from .task import Task, ReadOnlyDictView, LazyUUIDTask +from .serializing import DATE_FORMAT, local_zone # http://taskwarrior.org/docs/design/task.html , Section: The Attributes TASK_STANDARD_ATTRS = ( @@ -285,9 +287,18 @@ class TaskTest(TasklibTest): self.assertRaises(Task.CompletedTask, t.start) def test_add_completed_task(self): - t = Task(self.tw, description="test", status="completed", end="now") + t = Task(self.tw, description="test", status="completed", + end=datetime.datetime.now()) t.save() + def test_add_multiple_completed_tasks(self): + t1 = Task(self.tw, description="test1", status="completed", + end=datetime.datetime.now()) + t2 = Task(self.tw, description="test2", status="completed", + end=datetime.datetime.now()) + t1.save() + t2.save() + def test_complete_deleted_task(self): t = Task(self.tw, description="test task") t.save() @@ -764,13 +775,13 @@ class TaskFromHookTest(TasklibTest): '"description":"test task"}') def test_setting_up_from_add_hook_input(self): - t = Task.from_input(input_file=self.input_add_data, warrior=self.tw) + t = Task.from_input(input_file=self.input_add_data, backend=self.tw) self.assertEqual(t['description'], "Buy some milk") self.assertEqual(t.pending, True) def test_setting_up_from_modified_hook_input(self): t = Task.from_input(input_file=self.input_modify_data, modify=True, - warrior=self.tw) + backend=self.tw) self.assertEqual(t['description'], "Buy some milk finally") self.assertEqual(t.pending, False) self.assertEqual(t.completed, True) @@ -1090,3 +1101,40 @@ class ReadOnlyDictViewTest(unittest.TestCase): view_list_item.append(4) self.assertNotEqual(view_values, sample_values) self.assertEqual(self.sample, self.original_sample) + + +class LazyUUIDTaskTest(TasklibTest): + + def setUp(self): + super(LazyUUIDTaskTest, self).setUp() + + self.stored = Task(self.tw, description="this is test task") + self.stored.save() + + self.lazy = LazyUUIDTask(self.tw, self.stored['uuid']) + + def test_uuid_non_conversion(self): + assert self.stored['uuid'] == self.lazy['uuid'] + assert type(self.lazy) is LazyUUIDTask + + def test_conversion(self): + assert self.stored['description'] == self.lazy['description'] + assert type(self.lazy) is Task + + def test_normal_to_lazy_equality(self): + assert self.stored == self.lazy + assert type(self.lazy) is LazyUUIDTask + + def test_lazy_to_lazy_equality(self): + lazy1 = LazyUUIDTask(self.tw, self.stored['uuid']) + lazy2 = LazyUUIDTask(self.tw, self.stored['uuid']) + + assert lazy1 == lazy2 + assert type(lazy1) is LazyUUIDTask + assert type(lazy2) is LazyUUIDTask + + def test_lazy_in_queryset(self): + tasks = self.tw.tasks.filter(uuid=self.stored['uuid']) + + assert self.lazy in tasks + assert type(self.lazy) is LazyUUIDTask