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):
self.assertRaises(Task.DeletedTask, t.done)
+ def test_modify_simple_attribute_without_space(self):
+ t = Task(self.tw, description="test")
+ t.save()
+
+ self.assertEquals(t['description'], "test")
+
+ t['description'] = "test-modified"
+ t.save()
+
+ self.assertEquals(t['description'], "test-modified")
+
+ def test_modify_simple_attribute_with_space(self):
+ # Space can pose problems with parsing
+ t = Task(self.tw, description="test task")
+ t.save()
+
+ self.assertEquals(t['description'], "test task")
+
+ t['description'] = "test task modified"
+ t.save()
+
+ self.assertEquals(t['description'], "test task modified")
+
def test_empty_dependency_set_of_unsaved_task(self):
t = Task(self.tw, description="test task")
self.assertEqual(t['depends'], set())
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'))
+
+
class AnnotationTest(TasklibTest):
def setUp(self):