More tests, more bug fixes
authorEd Page <eopage@byu.net>
Sat, 18 Apr 2009 22:23:48 +0000 (17:23 -0500)
committerEd Page <eopage@byu.net>
Sat, 18 Apr 2009 22:23:48 +0000 (17:23 -0500)
src/cache_backend.py
tests/test_backend.py
tests/test_cache_backend.py
tests/test_file_backend.py

index bc0d6be..c9968ff 100644 (file)
@@ -70,6 +70,7 @@ class LazyCacheBackend(object):
                taskId = self._backend.add_task(projId, taskName)
                self._invalidate_projects_tasks(projId)
                self._invalidate_metaprojects_tasks()
+               self._taskIdToProjId[taskId] = projId
                return taskId
 
        def set_project(self, taskId, newProjId):
index d0606b3..6126ce7 100644 (file)
@@ -1,3 +1,8 @@
+import datetime
+
+import toolbox
+
+
 def assert_projects_same(backend1, backend2):
        projects1 = list(backend1.get_projects())
        projects1.sort()
@@ -154,6 +159,8 @@ def exercise_locations(backend):
 
 def exercise_task(backend, proj1Id, proj2Id):
        TASK_1_NAME = "t1"
+       TASK_1_NEW_NAME = "t1_1"
+       TASK_1_DUEDATE = datetime.datetime.now()
        TASK_2_NAME = "t1"
 
        proj1Tasks = list(backend.get_tasks_with_details(proj1Id))
@@ -171,3 +178,11 @@ def exercise_task(backend, proj1Id, proj2Id):
        assert len(proj1Tasks) == 1
        proj2Tasks = list(backend.get_tasks_with_details(proj2Id))
        assert len(proj2Tasks) == 0
+
+       backend.set_name(taskId, TASK_1_NEW_NAME)
+       task = backend.get_task_details(taskId)
+       assert task["name"] == TASK_1_NEW_NAME
+
+       backend.set_duedate(taskId, TASK_1_DUEDATE)
+       task = backend.get_task_details(taskId)
+       assert task["dueDate"] == TASK_1_DUEDATE
index 6d163b9..bd2d35d 100644 (file)
@@ -14,23 +14,26 @@ class TestCacheBackend(object):
        def test_projects(self):
                fileBackend = file_backend.FileBackend(os.tmpnam())
                backend = cache_backend.LazyCacheBackend(fileBackend)
+
                test_backend.exercise_projects(backend)
 
-               # Confirm cache matches actual
-               fileProjects = list(fileBackend.get_projects())
-               fileProjects.sort()
-               cacheProjects = list(backend.get_projects())
-               cacheProjects.sort()
-               assert fileProjects == cacheProjects
+               test_backend.assert_projects_same(fileBackend, backend)
 
        def test_locations(self):
                fileBackend = file_backend.FileBackend(os.tmpnam())
                backend = cache_backend.LazyCacheBackend(fileBackend)
+
                test_backend.exercise_locations(backend)
 
-               # Confirm cache matches actual
-               fileLocations = list(fileBackend.get_locations())
-               fileLocations.sort()
-               cacheLocations = list(backend.get_locations())
-               cacheLocations.sort()
-               assert fileLocations == cacheLocations
+               test_backend.assert_locations_same(fileBackend, backend)
+
+       def test_task(self):
+               fileBackend = file_backend.FileBackend(os.tmpnam())
+               backend = cache_backend.LazyCacheBackend(fileBackend)
+               proj1Id = backend.add_project("p1")
+               proj2Id = backend.add_project("p2")
+
+               test_backend.exercise_task(backend, proj1Id, proj2Id)
+
+               test_backend.assert_tasks_same(fileBackend, backend, proj1Id)
+               test_backend.assert_tasks_same(fileBackend, backend, proj2Id)
index 8fefb83..1f274b1 100644 (file)
@@ -11,8 +11,17 @@ class TestFileBackend(object):
 
        def test_projects(self):
                backend = file_backend.FileBackend(os.tmpnam())
+
                test_backend.exercise_projects(backend)
 
        def test_locations(self):
                backend = file_backend.FileBackend(os.tmpnam())
+
                test_backend.exercise_locations(backend)
+
+       def test_task(self):
+               backend = file_backend.FileBackend(os.tmpnam())
+               proj1Id = backend.add_project("p1")
+               proj2Id = backend.add_project("p2")
+
+               test_backend.exercise_task(backend, proj1Id, proj2Id)