Fixing some testing issues
authorEd Page <eopage@byu.net>
Mon, 20 Apr 2009 22:46:12 +0000 (17:46 -0500)
committerEd Page <eopage@byu.net>
Mon, 20 Apr 2009 22:46:12 +0000 (17:46 -0500)
src/toolbox.py
tests/test_backend.py

index 4601f3f..fe20e00 100644 (file)
@@ -75,6 +75,27 @@ class Optional(object):
                        id(self), self.get_nothrow("Nothing")
                )
 
+       def __not__(self):
+               return not self.is_good()
+
+       def __eq__(self, rhs):
+               return self._value == rhs._value
+
+       def __ne__(self, rhs):
+               return self._value != rhs._value
+
+       def __lt__(self, rhs):
+               return self._value < rhs._value
+
+       def __le__(self, rhs):
+               return self._value <= rhs._value
+
+       def __gt__(self, rhs):
+               return self._value > rhs._value
+
+       def __ge__(self, rhs):
+               return self._value >= rhs._value
+
 
 def open_anything(source, alternative=None):
        """URI, filename, or string --> stream
index 6126ce7..db43ad2 100644 (file)
@@ -160,7 +160,7 @@ 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_1_DUEDATE = toolbox.Optional(datetime.datetime.now())
        TASK_2_NAME = "t1"
 
        proj1Tasks = list(backend.get_tasks_with_details(proj1Id))
@@ -183,6 +183,7 @@ def exercise_task(backend, proj1Id, proj2Id):
        task = backend.get_task_details(taskId)
        assert task["name"] == TASK_1_NEW_NAME
 
+       assert task["dueDate"] == toolbox.Optional(), "%r not optional" % task["dueDate"]
        backend.set_duedate(taskId, TASK_1_DUEDATE)
        task = backend.get_task_details(taskId)
        assert task["dueDate"] == TASK_1_DUEDATE