X-Git-Url: https://git.madduck.net/etc/taskwarrior.git/blobdiff_plain/6adf5e34ed35f8b5d9975867c92096f4b9bc080f..d409220d5abb52c0bb0022bf8b24728636a96a5b:/tasklib/tests.py diff --git a/tasklib/tests.py b/tasklib/tests.py index 76a9514..4d88436 100644 --- a/tasklib/tests.py +++ b/tasklib/tests.py @@ -1,5 +1,6 @@ # coding=utf-8 +import datetime import shutil import tempfile import unittest @@ -193,6 +194,28 @@ class TaskTest(TasklibTest): self.assertEqual(t['depends'], set([dependency1, dependency2])) + def test_simple_dependency_set_save_repeatedly(self): + # Adds only one dependency to task with no dependencies + t = Task(self.tw, description="test task") + dependency = Task(self.tw, description="needs to be done first") + dependency.save() + + t['depends'] = set([dependency]) + t.save() + + # We taint the task, but keep depends intact + t['description'] = "test task modified" + t.save() + + self.assertEqual(t['depends'], set([dependency])) + + # We taint the task, but assign the same set to the depends + t['depends'] = set([dependency]) + t['description'] = "test task modified again" + t.save() + + self.assertEqual(t['depends'], set([dependency])) + def test_compare_different_tasks(self): # Negative: compare two different tasks t1 = Task(self.tw, description="test task") @@ -240,6 +263,37 @@ class TaskTest(TasklibTest): t2 = self.tw.tasks.get(uuid=t1['uuid']) self.assertEqual(t1.__hash__(), t2.__hash__()) + def test_adding_task_with_priority(self): + t = Task(self.tw, description="test task", priority="M") + t.save() + + def test_removing_priority_with_none(self): + t = Task(self.tw, description="test task", priority="L") + t.save() + + # Remove the priority mark + t['priority'] = None + t.save() + + # Assert that priority is not there after saving + self.assertEqual(t['priority'], None) + + def test_adding_task_with_due_time(self): + t = Task(self.tw, description="test task", due=datetime.datetime.now()) + t.save() + + def test_removing_due_time_with_none(self): + t = Task(self.tw, description="test task", due=datetime.datetime.now()) + t.save() + + # Remove the due timestamp + t['due'] = None + t.save() + + # Assert that due timestamp is no longer there + self.assertEqual(t['due'], None) + + class AnnotationTest(TasklibTest): def setUp(self):