class TodoListDependencyTester(TopydoTest): def setUp(self): super(TodoListDependencyTester, self).setUp() self.todolist = TodoList([]) self.todolist.add("Foo id:1") self.todolist.add("Bar p:1") self.todolist.add("Baz p:1 id:2") self.todolist.add("Buzz p:2") self.todolist.add("Fnord") self.todolist.add("Something with +Project") self.todolist.add("Another one with +Project") self.todolist.add("Todo with +AnotherProject") self.todolist.add("Todo without children id:3") def test_check_dep(self): children = self.todolist.children(self.todolist.todo(1)) self.assertEqual(sorted([todo.source() for todo in children]), sorted(["Bar p:1", "Baz p:1 id:2", "Buzz p:2"])) children = self.todolist.children(self.todolist.todo(1), True) self.assertEqual(sorted([todo.source() for todo in children]), sorted(["Bar p:1", "Baz p:1 id:2"])) children = self.todolist.children(self.todolist.todo(3)) self.assertEqual(sorted([todo.source() for todo in children]), ["Buzz p:2"]) parents = self.todolist.parents(self.todolist.todo(4)) self.assertEqual(sorted([todo.source() for todo in parents]), sorted(["Foo id:1", "Baz p:1 id:2"])) parents = self.todolist.parents(self.todolist.todo(4), True) self.assertEqual(sorted([todo.source() for todo in parents]), ["Baz p:1 id:2"]) self.assertEqual(self.todolist.children(self.todolist.todo(2)), []) self.assertEqual(self.todolist.parents(self.todolist.todo(1)), []) def test_add_dep1(self): todo4 = self.todolist.todo(4) todo5 = self.todolist.todo(5) self.todolist.add_dependency(todo5, todo4) self.assertTrue(todo5.has_tag("id", "4")) self.assertTrue(todo4.has_tag("p", "4")) def test_add_dep2(self): """ Make sure that previous add_dependency invocation stored the edge_id properly. """ todo1 = self.todolist.todo(1) todo4 = self.todolist.todo(4) todo5 = self.todolist.todo(5) self.todolist.add_dependency(todo5, todo4) self.todolist.add_dependency(todo4, todo1) self.assertTrue(todo4.has_tag("id", "5")) self.assertTrue(todo1.has_tag("p", "5")) def test_add_dep3(self): """ Test that projects are not added double. """ todo6 = self.todolist.todo(6) todo7 = self.todolist.todo(7) projects = todo7.projects().copy() self.todolist.add_dependency(todo6, todo7) self.assertEqual(projects, todo7.projects()) def test_add_dep4(self): """ Test that a new project is added to the sub todo. """ config("test/data/config3") todo6 = self.todolist.todo(6) todo8 = self.todolist.todo(8) self.todolist.add_dependency(todo6, todo8) self.assertEqual(set(["Project", "AnotherProject"]), todo8.projects()) def test_remove_dep1(self): from_todo = self.todolist.todo(3) to_todo = self.todolist.todo(4) self.todolist.remove_dependency(from_todo, to_todo) self.assertFalse(from_todo.has_tag("id")) self.assertFalse(to_todo.has_tag("p")) def test_remove_dep2(self): old = str(self.todolist) from_todo = self.todolist.todo(1) to_todo = self.todolist.todo(4) self.todolist.remove_dependency(from_todo, to_todo) self.assertEqual(str(self.todolist), old) def test_remove_todo_check_children(self): todo = self.todolist.todo(2) self.todolist.delete(todo) todo = self.todolist.todo(2) self.assertTrue(self.todolist.children(todo)) def test_remove_task(self): todo = self.todolist.todo(3) self.todolist.delete(todo) self.assertFalse(todo.has_tag("p", "2")) todo = self.todolist.todo(1) children = self.todolist.children(todo) self.assertEqual([t.source() for t in children], ["Bar p:1"]) def test_add_double_dep(self): todo1 = self.todolist.todo(1) todo2 = self.todolist.todo(2) self.todolist.add_dependency(todo1, todo2) self.assertEqual(todo1.source(), "Foo id:1") self.assertEqual(todo2.source(), "Bar p:1") def test_todo_by_dep_id(self): """ Tests that todos can be retrieved by their id tag. """ todolist = TodoList([]) todolist.add("(C) Foo id:1") self.assertTrue(todolist.todo_by_dep_id("1")) self.assertFalse(todolist.todo_by_dep_id("2"))
class TodoListDependencyTester(TopydoTest): def setUp(self): super(TodoListDependencyTester, self).setUp() self.todolist = TodoList([]) self.todolist.add("Foo id:1") self.todolist.add("Bar p:1") self.todolist.add("Baz p:1 id:2") self.todolist.add("Buzz p:2") self.todolist.add("Fnord") self.todolist.add("Something with +Project") self.todolist.add("Another one with +Project") self.todolist.add("Todo with +AnotherProject") self.todolist.add("Todo without children id:3") def test_check_dep(self): children = self.todolist.children(self.todolist.todo(1)) self.assertEqual(sorted([todo.source() for todo in children]), \ sorted(['Bar p:1', 'Baz p:1 id:2', 'Buzz p:2'])) children = self.todolist.children(self.todolist.todo(1), True) self.assertEqual(sorted([todo.source() for todo in children]), \ sorted(['Bar p:1', 'Baz p:1 id:2'])) children = self.todolist.children(self.todolist.todo(3)) self.assertEqual(sorted([todo.source() for todo in children]), \ ['Buzz p:2']) parents = self.todolist.parents(self.todolist.todo(4)) self.assertEqual(sorted([todo.source() for todo in parents]), \ sorted(['Foo id:1', 'Baz p:1 id:2'])) parents = self.todolist.parents(self.todolist.todo(4), True) self.assertEqual(sorted([todo.source() for todo in parents]), \ ['Baz p:1 id:2']) self.assertEqual(self.todolist.children(self.todolist.todo(2)), []) self.assertEqual(self.todolist.parents(self.todolist.todo(1)), []) def test_add_dep1(self): todo4 = self.todolist.todo(4) todo5 = self.todolist.todo(5) self.todolist.add_dependency(todo5, todo4) self.assertTrue(todo5.has_tag('id', '4')) self.assertTrue(todo4.has_tag('p', '4')) def test_add_dep2(self): """ Make sure that previous add_dependency invocation stored the edge_id properly. """ todo1 = self.todolist.todo(1) todo4 = self.todolist.todo(4) todo5 = self.todolist.todo(5) self.todolist.add_dependency(todo5, todo4) self.todolist.add_dependency(todo4, todo1) self.assertTrue(todo4.has_tag('id', '5')) self.assertTrue(todo1.has_tag('p', '5')) def test_add_dep3(self): """ Test that projects are not added double. """ todo6 = self.todolist.todo(6) todo7 = self.todolist.todo(7) projects = todo7.projects().copy() self.todolist.add_dependency(todo6, todo7) self.assertEquals(projects, todo7.projects()) def test_add_dep4(self): """ Test that a new project is added to the sub todo. """ config("test/data/config3") todo6 = self.todolist.todo(6) todo8 = self.todolist.todo(8) self.todolist.add_dependency(todo6, todo8) self.assertEquals(set(["Project", "AnotherProject"]), todo8.projects()) def test_remove_dep1(self): from_todo = self.todolist.todo(3) to_todo = self.todolist.todo(4) self.todolist.remove_dependency(from_todo, to_todo) self.assertFalse(from_todo.has_tag('id')) self.assertFalse(to_todo.has_tag('p')) def test_remove_dep2(self): old = str(self.todolist) from_todo = self.todolist.todo(1) to_todo = self.todolist.todo(4) self.todolist.remove_dependency(from_todo, to_todo) self.assertEquals(str(self.todolist), old) def test_remove_todo_check_children(self): todo = self.todolist.todo(2) self.todolist.delete(todo) todo = self.todolist.todo(2) self.assertTrue(self.todolist.children(todo)) def test_remove_task(self): todo = self.todolist.todo(3) self.todolist.delete(todo) self.assertFalse(todo.has_tag('p', '2')) todo = self.todolist.todo(1) children = self.todolist.children(todo) self.assertEqual([t.source() for t in children], ['Bar p:1']) def test_add_double_dep(self): todo1 = self.todolist.todo(1) todo2 = self.todolist.todo(2) self.todolist.add_dependency(todo1, todo2) self.assertEqual(todo1.source(), 'Foo id:1') self.assertEqual(todo2.source(), 'Bar p:1')
class TodoListDependencyTester(TopydoTest): def setUp(self): super().setUp() self.todolist = TodoList([]) self.todolist.add("Foo id:1") self.todolist.add("Bar p:1") self.todolist.add("Baz p:1 id:2") self.todolist.add("Buzz p:2") self.todolist.add("Fnord") self.todolist.add("Something with +Project") self.todolist.add("Another one with +Project") self.todolist.add("Todo with +AnotherProject") self.todolist.add("Todo without children id:3") self.todolist.add("Orphan p:4") def test_check_dep(self): children = self.todolist.children(self.todolist.todo(1)) self.assertEqual(sorted([todo.source() for todo in children]), sorted(['Bar p:1', 'Baz p:1 id:2', 'Buzz p:2'])) children = self.todolist.children(self.todolist.todo(1), True) self.assertEqual(sorted([todo.source() for todo in children]), sorted(['Bar p:1', 'Baz p:1 id:2'])) children = self.todolist.children(self.todolist.todo(3)) self.assertEqual(sorted([todo.source() for todo in children]), ['Buzz p:2']) parents = self.todolist.parents(self.todolist.todo(4)) self.assertEqual(sorted([todo.source() for todo in parents]), sorted(['Foo id:1', 'Baz p:1 id:2'])) parents = self.todolist.parents(self.todolist.todo(4), True) self.assertEqual(sorted([todo.source() for todo in parents]), ['Baz p:1 id:2']) self.assertEqual(self.todolist.children(self.todolist.todo(2)), []) self.assertEqual(self.todolist.parents(self.todolist.todo(1)), []) def test_add_dep1(self): todo4 = self.todolist.todo(4) todo5 = self.todolist.todo(5) self.todolist.add_dependency(todo5, todo4) self.assertTrue(todo5.has_tag('id', '5')) self.assertTrue(todo4.has_tag('p', '5')) def test_add_dep2(self): """ Make sure that previous add_dependency invocation stored the edge_id properly. """ todo1 = self.todolist.todo(1) todo4 = self.todolist.todo(4) todo5 = self.todolist.todo(5) self.todolist.add_dependency(todo5, todo4) self.todolist.add_dependency(todo4, todo1) self.assertTrue(todo4.has_tag('id', '6')) self.assertTrue(todo1.has_tag('p', '6')) def test_add_dep3(self): """ Test that projects are not added double. """ todo6 = self.todolist.todo(6) todo7 = self.todolist.todo(7) projects = todo7.projects().copy() self.todolist.add_dependency(todo6, todo7) self.assertEqual(projects, todo7.projects()) def test_add_dep4(self): """ Test that a new project is added to the sub todo. """ config("test/data/config3") todo6 = self.todolist.todo(6) todo8 = self.todolist.todo(8) self.todolist.add_dependency(todo6, todo8) self.assertEqual(set(["Project", "AnotherProject"]), todo8.projects()) def test_remove_dep1(self): from_todo = self.todolist.todo(3) to_todo = self.todolist.todo(4) self.todolist.remove_dependency(from_todo, to_todo) self.assertFalse(from_todo.has_tag('id')) self.assertFalse(to_todo.has_tag('p')) self.assertFalse(self.todolist.todo_by_dep_id('2')) def test_remove_dep2(self): old = str(self.todolist) from_todo = self.todolist.todo(1) to_todo = self.todolist.todo(4) self.todolist.remove_dependency(from_todo, to_todo) self.assertEqual(str(self.todolist), old) self.assertTrue(self.todolist.todo_by_dep_id('1')) self.assertTrue(self.todolist.todo_by_dep_id('2')) self.assertTrue(self.todolist.todo_by_dep_id('3')) def test_remove_dep3(self): """ Try to remove non-existing dependency. """ old = str(self.todolist) from_todo = self.todolist.todo(4) to_todo = self.todolist.todo(1) self.todolist.remove_dependency(from_todo, to_todo) self.assertEqual(str(self.todolist), old) self.assertTrue(self.todolist.todo_by_dep_id('1')) self.assertTrue(self.todolist.todo_by_dep_id('2')) self.assertTrue(self.todolist.todo_by_dep_id('3')) def test_remove_todo_check_children(self): todo = self.todolist.todo(2) self.todolist.delete(todo) todo = self.todolist.todo(2) self.assertTrue(self.todolist.children(todo)) def test_remove_task(self): todo = self.todolist.todo(3) self.todolist.delete(todo) self.assertFalse(todo.has_tag('p', '2')) self.assertFalse(self.todolist.todo_by_dep_id('2')) todo = self.todolist.todo(1) children = self.todolist.children(todo) self.assertEqual([t.source() for t in children], ['Bar p:1']) def test_add_double_dep(self): todo1 = self.todolist.todo(1) todo2 = self.todolist.todo(2) self.todolist.add_dependency(todo1, todo2) self.assertEqual(todo1.source(), 'Foo id:1') self.assertEqual(todo2.source(), 'Bar p:1') def test_todo_by_dep_id(self): """ Tests that todos can be retrieved by their id tag. """ todolist = TodoList([]) todolist.add("(C) Foo id:1") self.assertTrue(todolist.todo_by_dep_id('1')) self.assertFalse(todolist.todo_by_dep_id('2')) def test_add_after_dependencies(self): """ Test that information is properly stored after dependency related information was retrieved from the todo list. """ todo = self.todolist.todo(1) self.todolist.parents(todo) self.todolist.add('New dependency id:99') self.todolist.add('Child p:99') self.assertTrue(self.todolist.dirty) self.assertTrue(self.todolist.todo_by_dep_id('99')) def test_delete01(self): """ Check that dependency tags are cleaned up. """ todo = self.todolist.todo(4) self.todolist.delete(todo, p_leave_tags=False) self.assertTrue(self.todolist.is_dirty()) self.assertEqual(self.todolist.todo(3).source(), "Baz p:1") def test_delete02(self): """ Check that dependency tags are left when requested. """ todo = self.todolist.todo(4) self.todolist.delete(todo, p_leave_tags=True) self.assertTrue(self.todolist.is_dirty()) self.assertEqual(self.todolist.todo(3).source(), "Baz p:1 id:2") def test_delete03(self): """ Check that dependency tags are left when requested. """ todo = self.todolist.todo(3) self.todolist.delete(todo, p_leave_tags=True) self.assertTrue(self.todolist.is_dirty()) self.assertEqual(self.todolist.todo(3).source(), "Buzz p:2")
class TodoListDependencyTester(TopydoTest): def setUp(self): super().setUp() self.todolist = TodoList([]) self.todolist.add("Foo id:1") self.todolist.add("Bar p:1") self.todolist.add("Baz p:1 id:2") self.todolist.add("Buzz p:2") self.todolist.add("Fnord") self.todolist.add("Something with +Project") self.todolist.add("Another one with +Project") self.todolist.add("Todo with +AnotherProject") self.todolist.add("Todo without children id:3") self.todolist.add("Orphan p:4") def test_check_dep(self): children = self.todolist.children(self.todolist.todo(1)) self.assertEqual(sorted([todo.source() for todo in children]), sorted(['Bar p:1', 'Baz p:1 id:2', 'Buzz p:2'])) children = self.todolist.children(self.todolist.todo(1), True) self.assertEqual(sorted([todo.source() for todo in children]), sorted(['Bar p:1', 'Baz p:1 id:2'])) children = self.todolist.children(self.todolist.todo(3)) self.assertEqual(sorted([todo.source() for todo in children]), ['Buzz p:2']) parents = self.todolist.parents(self.todolist.todo(4)) self.assertEqual(sorted([todo.source() for todo in parents]), sorted(['Foo id:1', 'Baz p:1 id:2'])) parents = self.todolist.parents(self.todolist.todo(4), True) self.assertEqual(sorted([todo.source() for todo in parents]), ['Baz p:1 id:2']) self.assertEqual(self.todolist.children(self.todolist.todo(2)), []) self.assertEqual(self.todolist.parents(self.todolist.todo(1)), []) def test_add_dep1(self): todo4 = self.todolist.todo(4) todo5 = self.todolist.todo(5) self.todolist.add_dependency(todo5, todo4) self.assertTrue(todo5.has_tag('id', '5')) self.assertTrue(todo4.has_tag('p', '5')) def test_add_dep2(self): """ Make sure that previous add_dependency invocation stored the edge_id properly. """ todo1 = self.todolist.todo(1) todo4 = self.todolist.todo(4) todo5 = self.todolist.todo(5) self.todolist.add_dependency(todo5, todo4) self.todolist.add_dependency(todo4, todo1) self.assertTrue(todo4.has_tag('id', '6')) self.assertTrue(todo1.has_tag('p', '6')) def test_add_dep3(self): """ Test that projects are not added double. """ todo6 = self.todolist.todo(6) todo7 = self.todolist.todo(7) projects = todo7.projects().copy() self.todolist.add_dependency(todo6, todo7) self.assertEqual(projects, todo7.projects()) def test_add_dep4(self): """ Test that a new project is added to the sub todo. """ config("test/data/config3") todo6 = self.todolist.todo(6) todo8 = self.todolist.todo(8) self.todolist.add_dependency(todo6, todo8) self.assertEqual(set(["Project", "AnotherProject"]), todo8.projects()) def test_remove_dep1(self): from_todo = self.todolist.todo(3) to_todo = self.todolist.todo(4) self.todolist.remove_dependency(from_todo, to_todo) self.assertFalse(from_todo.has_tag('id')) self.assertFalse(to_todo.has_tag('p')) self.assertFalse(self.todolist.todo_by_dep_id('2')) def test_remove_dep2(self): old = str(self.todolist) from_todo = self.todolist.todo(1) to_todo = self.todolist.todo(4) self.todolist.remove_dependency(from_todo, to_todo) self.assertEqual(str(self.todolist), old) self.assertTrue(self.todolist.todo_by_dep_id('1')) self.assertTrue(self.todolist.todo_by_dep_id('2')) self.assertTrue(self.todolist.todo_by_dep_id('3')) def test_remove_dep3(self): """ Try to remove non-existing dependency. """ old = str(self.todolist) from_todo = self.todolist.todo(4) to_todo = self.todolist.todo(1) self.todolist.remove_dependency(from_todo, to_todo) self.assertEqual(str(self.todolist), old) self.assertTrue(self.todolist.todo_by_dep_id('1')) self.assertTrue(self.todolist.todo_by_dep_id('2')) self.assertTrue(self.todolist.todo_by_dep_id('3')) def test_remove_todo_check_children(self): todo = self.todolist.todo(2) self.todolist.delete(todo) todo = self.todolist.todo(2) self.assertTrue(self.todolist.children(todo)) def test_remove_task(self): todo = self.todolist.todo(3) self.todolist.delete(todo) self.assertFalse(todo.has_tag('p', '2')) self.assertFalse(self.todolist.todo_by_dep_id('2')) todo = self.todolist.todo(1) children = self.todolist.children(todo) self.assertEqual([t.source() for t in children], ['Bar p:1']) def test_add_double_dep(self): todo1 = self.todolist.todo(1) todo2 = self.todolist.todo(2) self.todolist.add_dependency(todo1, todo2) self.assertEqual(todo1.source(), 'Foo id:1') self.assertEqual(todo2.source(), 'Bar p:1') def test_todo_by_dep_id(self): """ Tests that todos can be retrieved by their id tag. """ todolist = TodoList([]) todolist.add("(C) Foo id:1") self.assertTrue(todolist.todo_by_dep_id('1')) self.assertFalse(todolist.todo_by_dep_id('2')) def test_add_after_dependencies(self): """ Test that information is properly stored after dependency related information was retrieved from the todo list. """ todo = self.todolist.todo(1) self.todolist.parents(todo) self.todolist.add('New dependency id:99') self.todolist.add('Child p:99') self.assertTrue(self.todolist.dirty) self.assertTrue(self.todolist.todo_by_dep_id('99')) def test_delete01(self): """ Check that dependency tags are cleaned up. """ todo = self.todolist.todo(4) self.todolist.delete(todo, p_leave_tags=False) self.assertTrue(self.todolist.dirty) self.assertEqual(self.todolist.todo(3).source(), "Baz p:1") def test_delete02(self): """ Check that dependency tags are left when requested. """ todo = self.todolist.todo(4) self.todolist.delete(todo, p_leave_tags=True) self.assertTrue(self.todolist.dirty) self.assertEqual(self.todolist.todo(3).source(), "Baz p:1 id:2") def test_delete03(self): """ Check that dependency tags are left when requested. """ todo = self.todolist.todo(3) self.todolist.delete(todo, p_leave_tags=True) self.assertTrue(self.todolist.dirty) self.assertEqual(self.todolist.todo(3).source(), "Buzz p:2")