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):
+import datetime
+
+import toolbox
+
+
def assert_projects_same(backend1, backend2):
projects1 = list(backend1.get_projects())
projects1.sort()
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))
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
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)
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)