X-Git-Url: https://git.madduck.net/etc/taskwarrior.git/blobdiff_plain/228ef69b3f641c8bb81d7377977b9b57855f8572..ef4e6774912c7170239ed559bc215acdfe9d28db:/tasklib/tests.py diff --git a/tasklib/tests.py b/tasklib/tests.py index 72aebb9..f3edd61 100644 --- a/tasklib/tests.py +++ b/tasklib/tests.py @@ -70,6 +70,34 @@ class TaskFilterTest(TasklibTest): no_priority_task = self.tw.tasks.get(priority=None) self.assertEqual(no_priority_task['description'], "no priority task") + def test_filter_for_task_with_space_in_descripition(self): + task = Task(self.tw, description="test task") + task.save() + + filtered_task = self.tw.tasks.get(description="test task") + self.assertEqual(filtered_task['description'], "test task") + + def test_filter_for_task_without_space_in_descripition(self): + task = Task(self.tw, description="test") + task.save() + + filtered_task = self.tw.tasks.get(description="test") + self.assertEqual(filtered_task['description'], "test") + + def test_filter_for_task_with_space_in_project(self): + task = Task(self.tw, description="test", project="random project") + task.save() + + filtered_task = self.tw.tasks.get(project="random project") + self.assertEqual(filtered_task['project'], "random project") + + def test_filter_for_task_without_space_in_project(self): + task = Task(self.tw, description="test", project="random") + task.save() + + filtered_task = self.tw.tasks.get(project="random") + self.assertEqual(filtered_task['project'], "random") + class TaskTest(TasklibTest): @@ -153,9 +181,9 @@ class TaskTest(TasklibTest): # We only save the parent task, dependency task is unsaved t.save() + t['depends'] = set([dependency]) - self.assertRaises(Task.NotSaved, - t.__setitem__, 'depends', set([dependency])) + self.assertRaises(Task.NotSaved, t.save) def test_set_simple_dependency_set(self): # Adds only one dependency to task with no dependencies @@ -195,7 +223,7 @@ class TaskTest(TasklibTest): t['depends'] = set([dependency1, dependency2]) t.save() - t['depends'] = t['depends'] - set([dependency2]) + t['depends'].remove(dependency2) t.save() self.assertEqual(t['depends'], set([dependency1])) @@ -212,7 +240,7 @@ class TaskTest(TasklibTest): t['depends'] = set([dependency1]) t.save() - t['depends'] = t['depends'] | set([dependency2]) + t['depends'].add(dependency2) t.save() self.assertEqual(t['depends'], set([dependency1, dependency2])) @@ -371,6 +399,35 @@ class TaskTest(TasklibTest): t['depends'] = set([dependency]) self.assertEqual(set(t._modified_fields), set()) + def test_setting_read_only_attrs_through_init(self): + # Test that we are unable to set readonly attrs through __init__ + for readonly_key in Task.read_only_fields: + kwargs = {'description': 'test task', readonly_key: 'value'} + self.assertRaises(RuntimeError, + lambda: Task(self.tw, **kwargs)) + + def test_setting_read_only_attrs_through_setitem(self): + # Test that we are unable to set readonly attrs through __init__ + for readonly_key in Task.read_only_fields: + t = Task(self.tw, description='test task') + self.assertRaises(RuntimeError, + lambda: t.__setitem__(readonly_key, 'value')) + + def test_saving_unmodified_task(self): + t = Task(self.tw, description="test task") + t.save() + t.refresh() + t.save() + + def test_adding_tag_by_appending(self): + t = Task(self.tw, description="test task", tags=['test1']) + t.save() + t['tags'].append('test2') + t.save() + t.refresh() + self.assertEqual(t['tags'], ['test1', 'test2']) + + class AnnotationTest(TasklibTest): def setUp(self):