class FileTodoListTester(unittest.TestCase): def __safeFileDelete(self,path): if os.path.isfile(path): os.remove(path) def setUp(self): self.path = '.TODO_TEST_FILE' f = open(self.path, 'w') f.write('A\nB\nC') f.close() self.todo = FileTodoList(path = self.path) def test_read(self): self.assertEqual(self.todo.find('A'), 0) self.assertEqual(self.todo.find('B'), 1) self.assertEqual(self.todo.find('C'), 2) def test_write(self): self.todo.complete(ArgumentHolder(todo='B')) self.todo.write() s = open(self.path, 'r').read() self.assertEqual(s, 'A\nC') def test_empty_file(self): self.__safeFileDelete(self.path) self.todo = FileTodoList(path = self.path) self.assertEqual(self.todo.find('A'), -1) # blank lines cause extra items to mysteriously appear # in the todo list def test_blank_lines_filter(self): self.__safeFileDelete(self.path) self.todo = FileTodoList(path = self.path) args = ArgumentHolder(todo='Hello') self.todo.add(args) self.todo.write() self.todo.read() self.assertEqual(self.todo.get(0), 'Hello') pass def tearDown(self): self.__safeFileDelete(self.path)