def _recurrence_helper(self, p_flags): command = DoCommand(p_flags, self.todolist, self.out, self.error) command.execute() self.assertTrue(self.todolist.is_dirty()) self.assertEqual(self.errors, "") self.assertEqual(self.todolist.count(), 12)
def test_revert02(self): backup = ChangeSet(self.todolist, self.archive, ['do 1']) backup.timestamp = '1' command1 = DoCommand(["1"], self.todolist, self.out, self.error, None) command1.execute() archive_command1 = ArchiveCommand(self.todolist, self.archive) archive_command1.execute() self.archive_file.write(self.archive.print_todos()) backup.save(self.todolist) backup = ChangeSet(self.todolist, self.archive, ['do Bar']) backup.timestamp = '2' command2 = DoCommand(["Bar"], self.todolist, self.out, self.error, None) command2.execute() archive_command2 = ArchiveCommand(self.todolist, self.archive) archive_command2.execute() self.archive_file.write(self.archive.print_todos()) backup.save(self.todolist) self.assertEqual(self.archive.print_todos(), "x {t} Foo\nx {t} Bar".format(t=self.today)) self.assertEqual(self.todolist.print_todos(), "Baz") revert_command = RevertCommand([], self.todolist, self.out, self.error, None) revert_command.execute() result = TodoList(self.archive_file.read()).print_todos() self.assertEqual(self.errors, "") self.assertTrue(self.output.endswith("Successfully reverted: do Bar\n")) self.assertEqual(result, "x {} Foo".format(self.today)) self.assertEqual(self.todolist.print_todos(), "Bar\nBaz")
def test_invalid2(self): command = DoCommand(["AAA"], self.todolist, self.out, self.error) command.execute() self.assertFalse(self.todolist.is_dirty()) self.assertFalse(self.output) self.assertEqual(self.errors, "Invalid todo number given.\n")
def test_revert02(self): backup = ChangeSet(self.todolist, self.archive, ['do 1']) backup.timestamp = '1' command1 = DoCommand(["1"], self.todolist, self.out, self.error, None) command1.execute() archive_command1 = ArchiveCommand(self.todolist, self.archive) archive_command1.execute() self.archive_file.write(self.archive.print_todos()) backup.save(self.todolist) backup = ChangeSet(self.todolist, self.archive, ['do Bar']) backup.timestamp = '2' command2 = DoCommand(["Bar"], self.todolist, self.out, self.error, None) command2.execute() archive_command2 = ArchiveCommand(self.todolist, self.archive) archive_command2.execute() self.archive_file.write(self.archive.print_todos()) backup.save(self.todolist) self.assertEqual(self.archive.print_todos(), "x {t} Foo\nx {t} Bar".format(t=self.today)) self.assertEqual(self.todolist.print_todos(), "Baz") revert_command = RevertCommand([], self.todolist, self.out, self.error, None) revert_command.execute() result = TodoList(self.archive_file.read()).print_todos() self.assertEqual(self.errors, "") self.assertTrue( self.output.endswith("Successfully reverted: do Bar\n")) self.assertEqual(result, "x {} Foo".format(self.today)) self.assertEqual(self.todolist.print_todos(), "Bar\nBaz")
def _recurrence_helper(self, p_flags): command = DoCommand(p_flags, self.todolist, self.out, self.error) command.execute() self.assertTrue(self.todolist.is_dirty()) self.assertEqual(self.errors, "") self.assertEqual(self.todolist.count(), 12)
def test_invalid3(self): command = DoCommand(["01"], self.todolist, self.out, self.error, _yes_prompt) command.execute() self.assertFalse(self.todolist.is_dirty()) self.assertFalse(self.output) self.assertEqual(self.errors, "Invalid todo number given.\n")
def test_help(self): command = DoCommand(["help"], self.todolist, self.out, self.error) command.execute() self.assertEqual(self.output, "") self.assertEqual(self.errors, command.usage() + "\n\n" + command.help() + "\n")
def test_multi_do6(self): """ Throw an error with invalid argument containing special characters. """ command = DoCommand([u("Fo\u00d3B\u0105r"), "Bar"], self.todolist, self.out, self.error, None) command.execute() self.assertFalse(self.todolist.is_dirty()) self.assertEqual(self.errors, u("Invalid todo number given: Fo\u00d3B\u0105r.\n"))
def test_multi_do4(self): command = DoCommand(["99", "3"], self.todolist, self.out, self.error, _no_prompt) command.execute() self.assertFalse(self.todolist.todo(3).is_completed()) self.assertEqual(self.errors, "Invalid todo number given: 99.\n")
def test_expr_do3(self): command = DoCommand(["-e", "@test", "due:2015-06-03", "+project"], self.todolist, self.out, self.error, None) command.execute() command.execute_post_archive_actions() self.assertFalse(self.todolist.dirty)
def test_activated_todos2(self): command = DoCommand(["7"], self.todolist, self.out, self.error) command.execute() command.execute_post_archive_actions() self.assertEqual(self.output, "Completed: x {} Subtodo of inactive p:2\n".format(self.today)) self.assertEqual(self.errors, "")
def test_do_custom_date4(self): command = DoCommand(["-d", "foo", "3"], self.todolist, self.out, self.error) command.execute() self.assertTrue(self.todolist.is_dirty()) self.assertEqual(self.output, "Completed: x {} Baz p:1\n".format(self.today)) self.assertEqual(self.errors, "")
def test_do_custom_date3(self): command = DoCommand(["--date=2014-11-18", "3"], self.todolist, self.out, self.error) command.execute() self.assertTrue(self.todolist.is_dirty()) self.assertEqual(self.output, "Completed: x 2014-11-18 Baz p:1\n") self.assertEqual(self.errors, "")
def test_do_custom_date2(self): command = DoCommand(["-d", "2014-11-18", "1"], self.todolist, self.out, self.error, _yes_prompt) command.execute() self.assertTrue(self.todolist.is_dirty()) self.assertEqual(self.output, "| 2| Bar p:1\n| 3| Baz p:1\nCompleted: x 2014-11-18 Bar p:1\nCompleted: x 2014-11-18 Baz p:1\nCompleted: x 2014-11-18 Foo id:1\n") self.assertEqual(self.errors, "")
def test_help(self): command = DoCommand(["help"], self.todolist, self.out, self.error) command.execute() self.assertEqual(self.output, "") self.assertEqual(self.errors, command.usage() + "\n\n" + command.help() + "\n")
def test_expr_do2(self): command = DoCommand(["-e", "@test", "due:2015-06-03"], self.todolist, self.out, self.error, None) command.execute() self.assertTrue(self.todolist.is_dirty()) self.assertEqual(self.output, "Completed: x {} a @test with due:2015-06-03\n".format(self.today)) self.assertEqual(self.errors, "")
def test_multi_do4(self): command = DoCommand(["99", "3"], self.todolist, self.out, self.error, _no_prompt) command.execute() self.assertFalse(self.todolist.todo(3).is_completed()) self.assertEqual(self.errors, "Invalid todo number given: 99.\n")
def test_expr_do4(self): """ Don't do anything with unrelevant todo items. """ command = DoCommand(["-e", "Foo"], self.todolist, self.out, self.error, None) command.execute() self.assertFalse(self.todolist.is_dirty())
def test_empty(self): command = DoCommand([], self.todolist, self.out, self.error) command.execute() self.assertFalse(self.todolist.is_dirty()) self.assertFalse(self.output) self.assertEqual(self.errors, command.usage() + "\n")
def test_expr_do3(self): command = DoCommand(["-e", "@test", "due:2015-06-03", "+project"], self.todolist, self.out, self.error, None) command.execute() command.execute_post_archive_actions() self.assertFalse(self.todolist.dirty)
def test_empty(self): command = DoCommand([], self.todolist, self.out, self.error) command.execute() self.assertFalse(self.todolist.is_dirty()) self.assertFalse(self.output) self.assertEqual(self.errors, command.usage() + "\n")
def test_activated_todos2(self): command = DoCommand(["7"], self.todolist, self.out, self.error) command.execute() command.execute_post_archive_actions() self.assertEqual(self.output, "Completed: x {} Subtodo of inactive p:2\n".format(self.today)) self.assertEqual(self.errors, "")
def test_invalid_recurrence(self): """ Show error message when an item has an invalid recurrence pattern. """ command = DoCommand(["9"], self.todolist, self.out, self.error, _no_prompt) command.execute() self.assertEqual(self.output, "Completed: x {} Invalid rec:1\n".format(self.today)) self.assertEqual(self.errors, "Warning: todo item has an invalid recurrence pattern.\n")
def test_invalid2(self): command = DoCommand(["AAA"], self.todolist, self.out, self.error) command.execute() self.assertFalse(self.todolist.dirty) self.assertFalse(self.output) self.assertEqual(self.errors, "Invalid todo number given.\n")
def test_expr_do4(self): """ Don't do anything with unrelevant todo items. """ command = DoCommand(["-e", "Foo"], self.todolist, self.out, self.error, None) command.execute() self.assertFalse(self.todolist.dirty)
def test_empty(self): command = DoCommand([], self.todolist, self.out, self.error) command.execute() command.execute_post_archive_actions() self.assertFalse(self.todolist.dirty) self.assertFalse(self.output) self.assertEqual(self.errors, command.usage() + "\n")
def test_invalid1(self): command = DoCommand(["99"], self.todolist, self.out, self.error) command.execute() command.execute_post_archive_actions() self.assertFalse(self.todolist.dirty) self.assertFalse(self.output) self.assertEqual(self.errors, "Invalid todo number given.\n")
def _recurrence_helper(self, p_flags): command = DoCommand(p_flags, self.todolist, self.out, self.error) command.execute() command.execute_post_archive_actions() self.assertTrue(self.todolist.dirty) self.assertEqual(self.errors, "") self.assertEqual(self.todolist.count(), 12)
def test_do_regex1(self): command = DoCommand(["baz"], self.todolist, self.out, self.error) command.execute() self.assertTrue(self.todolist.is_dirty()) self.assertTrue(self.todolist.todo(3).is_completed()) self.assertEqual(self.output, "Completed: x {} Baz p:1\n".format(self.today)) self.assertEqual(self.errors, "")
def test_multi_do5(self): """ Check output when all supplied todo numbers are invalid. """ command = DoCommand(["99", "15"], self.todolist, self.out, self.error, _no_prompt) command.execute() self.assertEqual(self.errors, "Invalid todo number given: 99.\nInvalid todo number given: 15.\n")
def test_multi_do3(self): command = DoCommand(["3", "3"], self.todolist, self.out, self.error, _no_prompt) command.execute() self.assertTrue(self.todolist.todo(3).is_completed()) self.assertEqual(self.output, "Completed: x {} Baz p:1\n".format(self.today))
def test_already_complete(self): command = DoCommand(["5"], self.todolist, self.out, self.error) command.execute() self.assertFalse(self.todolist.is_dirty()) self.assertEqual(self.todolist.todo(5).completion_date(), date(2014, 10, 18)) self.assertFalse(self.output) self.assertEqual(self.errors, "Todo has already been completed.\n")
def test_expr_do1(self): command = DoCommand(["-e", "@test"], self.todolist, self.out, self.error, None) command.execute() self.assertTrue(self.todolist.dirty) self.assertEqual(self.output, "Completed: x {t} a @test with due:2015-06-03\nCompleted: x {t} a @test with +project\n".format(t=self.today)) self.assertEqual(self.errors, "")
def test_empty(self): command = DoCommand([], self.todolist, self.out, self.error) command.execute() command.execute_post_archive_actions() self.assertFalse(self.todolist.dirty) self.assertFalse(self.output) self.assertEqual(self.errors, command.usage() + "\n")
def test_do_custom_date3(self): command = DoCommand(["--date=2014-11-18", "3"], self.todolist, self.out, self.error) command.execute() self.assertTrue(self.todolist.is_dirty()) self.assertEqual(self.output, "Completed: x 2014-11-18 Baz p:1\n") self.assertEqual(self.errors, "")
def test_multi_do3(self): command = DoCommand(["3", "3"], self.todolist, self.out, self.error, _no_prompt) command.execute() self.assertTrue(self.todolist.todo(3).is_completed()) self.assertEqual(self.output, "Completed: x {} Baz p:1\n".format(self.today))
def _recurrence_helper(self, p_flags): command = DoCommand(p_flags, self.todolist, self.out, self.error) command.execute() command.execute_post_archive_actions() self.assertTrue(self.todolist.dirty) self.assertEqual(self.errors, "") self.assertEqual(self.todolist.count(), 12)
def test_invalid2(self): command = DoCommand(["AAA"], self.todolist, self.out, self.error) command.execute() command.execute_post_archive_actions() self.assertFalse(self.todolist.dirty) self.assertFalse(self.output) self.assertEqual(self.errors, "Invalid todo number given.\n")
def test_do_custom_date1(self): command = DoCommand(["-d", "2014-11-18", "3"], self.todolist, self.out, self.error) command.execute() command.execute_post_archive_actions() self.assertTrue(self.todolist.dirty) self.assertEqual(self.output, "Completed: x 2014-11-18 Baz p:1\n") self.assertEqual(self.errors, "")
def test_multi_do6(self): """ Throw an error with invalid argument containing special characters. """ command = DoCommand([u("Fo\u00d3B\u0105r"), "Bar"], self.todolist, self.out, self.error, None) command.execute() self.assertFalse(self.todolist.is_dirty()) self.assertEqual(self.errors, u("Invalid todo number given: Fo\u00d3B\u0105r.\n"))
def test_do_custom_date4(self): command = DoCommand(["-d", "foo", "3"], self.todolist, self.out, self.error) command.execute() self.assertTrue(self.todolist.is_dirty()) self.assertEqual(self.output, "Completed: x {} Baz p:1\n".format(self.today)) self.assertEqual(self.errors, "")
def test_already_complete(self): command = DoCommand(["5"], self.todolist, self.out, self.error) command.execute() self.assertFalse(self.todolist.is_dirty()) self.assertEqual( self.todolist.todo(5).completion_date(), date(2014, 10, 18)) self.assertFalse(self.output) self.assertEqual(self.errors, "Todo has already been completed.\n")
def test_do_custom_date2(self): command = DoCommand(["-d", "2014-11-18", "1"], self.todolist, self.out, self.error, _yes_prompt) command.execute() command.execute_post_archive_actions() self.assertTrue(self.todolist.dirty) self.assertEqual(self.output, "| 2| Bar p:1\n| 3| Baz p:1\nCompleted: x 2014-11-18 Bar p:1\nCompleted: x 2014-11-18 Baz p:1\nCompleted: x 2014-11-18 Foo id:1\n") self.assertEqual(self.errors, "")
def test_multi_do2(self): command = DoCommand(["1", "3"], self.todolist, self.out, self.error, _no_prompt) command.execute() self.assertTrue(self.todolist.todo(1).is_completed()) self.assertFalse(self.todolist.todo(2).is_completed()) self.assertTrue(self.todolist.todo(3).is_completed()) self.assertEqual(self.output, "| 2| Bar p:1\n| 3| Baz p:1\nCompleted: x {today} Foo id:1\nCompleted: x {today} Baz p:1\n".format(today=self.today))
def test_do_custom_date1(self): command = DoCommand(["-d", "2014-11-18", "3"], self.todolist, self.out, self.error) command.execute() command.execute_post_archive_actions() self.assertTrue(self.todolist.dirty) self.assertEqual(self.output, "Completed: x 2014-11-18 Baz p:1\n") self.assertEqual(self.errors, "")
def test_expr_do2(self): command = DoCommand(["-e", "@test", "due:2015-06-03"], self.todolist, self.out, self.error, None) command.execute() command.execute_post_archive_actions() self.assertTrue(self.todolist.dirty) self.assertEqual(self.output, "Completed: x {} a @test with due:2015-06-03\n".format(self.today)) self.assertEqual(self.errors, "")
def test_do_regex1(self): command = DoCommand(["baz"], self.todolist, self.out, self.error) command.execute() self.assertTrue(self.todolist.is_dirty()) self.assertTrue(self.todolist.todo(3).is_completed()) self.assertEqual(self.output, "Completed: x {} Baz p:1\n".format(self.today)) self.assertEqual(self.errors, "")
def test_expr_do5(self): """ Force marking unrelevant items as done with additional -x flag. """ command = DoCommand(["-xe", "Foo"], self.todolist, self.out, self.error, _yes_prompt) command.execute() result = "| 2| Bar p:1\n| 3| Baz p:1\nCompleted: x {t} Bar p:1\nCompleted: x {t} Baz p:1\nCompleted: x {t} Foo id:1\n".format(t=self.today) self.assertTrue(self.todolist.is_dirty()) self.assertEqual(self.output, result) self.assertEqual(self.errors, "")
def test_multi_do5(self): """ Check output when all supplied todo numbers are invalid. """ command = DoCommand(["99", "15"], self.todolist, self.out, self.error, _no_prompt) command.execute() command.execute_post_archive_actions() self.assertEqual(self.errors, "Invalid todo number given: 99.\nInvalid todo number given: 15.\n")
def test_multi_do2(self): command = DoCommand(["1", "3"], self.todolist, self.out, self.error, _no_prompt) command.execute() command.execute_post_archive_actions() self.assertTrue(self.todolist.todo(1).is_completed()) self.assertFalse(self.todolist.todo(2).is_completed()) self.assertTrue(self.todolist.todo(3).is_completed()) self.assertEqual(self.output, "| 2| Bar p:1\n| 3| Baz p:1\nCompleted: x {today} Foo id:1\nCompleted: x {today} Baz p:1\n".format(today=self.today))
def test_do1(self): command = DoCommand(["3"], self.todolist, self.out, self.error, _no_prompt) command.execute() command.execute_post_archive_actions() self.assertTrue(self.todolist.dirty) self.assertTrue(self.todolist.todo(3).is_completed()) self.assertEqual(self.output, "Completed: x {} Baz p:1\n".format(self.today)) self.assertEqual(self.errors, "")
def test_do1(self): command = DoCommand(["3"], self.todolist, self.out, self.error, _no_prompt) command.execute() command.execute_post_archive_actions() self.assertTrue(self.todolist.dirty) self.assertTrue(self.todolist.todo(3).is_completed()) self.assertEqual(self.output, "Completed: x {} Baz p:1\n".format(self.today)) self.assertEqual(self.errors, "")
def test_do_custom_date5(self): """ Make sure that the new recurrence date is correct when a custom date is given. """ command = DoCommand(["-d", self.yesterday, "4"], self.todolist, self.out, self.error) command.execute() self.assertTrue(self.todolist.is_dirty()) self.assertEqual(self.output, "| 12| {today} Recurring! rec:1d due:{today}\nCompleted: x {yesterday} Recurring! rec:1d\n".format(today=self.today, yesterday=self.yesterday)) self.assertEqual(self.errors, "")
def test_invalid_recurrence(self): """ Show error message when an item has an invalid recurrence pattern. """ command = DoCommand(["9"], self.todolist, self.out, self.error, _no_prompt) command.execute() self.assertEqual(self.output, "Completed: x {} Invalid rec:1\n".format(self.today)) self.assertEqual( self.errors, "Warning: todo item has an invalid recurrence pattern.\n")
def test_expr_do1(self): command = DoCommand(["-e", "@test"], self.todolist, self.out, self.error, None) command.execute() self.assertTrue(self.todolist.is_dirty()) self.assertEqual( self.output, "Completed: x {t} a @test with due:2015-06-03\nCompleted: x {t} a @test with +project\n" .format(t=self.today)) self.assertEqual(self.errors, "")
def test_do_custom_date7(self): """ When a custom date is set, strict recurrence must still hold on to the due date as the offset. """ command = DoCommand(["-s", "-d", self.yesterday, "8"], self.todolist, self.out, self.error) command.execute() self.assertTrue(self.todolist.is_dirty()) self.assertEqual(self.output, "| 12| {today} Strict due:2014-01-02 rec:1d\nCompleted: x {yesterday} Strict due:2014-01-01 rec:1d\n".format(today=self.today, yesterday=self.yesterday)) self.assertEqual(self.errors, "")
def test_expr_do5(self): """ Force marking unrelevant items as done with additional -x flag. """ command = DoCommand(["-xe", "Foo"], self.todolist, self.out, self.error, _yes_prompt) command.execute() command.execute_post_archive_actions() result = "| 2| Bar p:1\n| 3| Baz p:1\nCompleted: x {t} Bar p:1\nCompleted: x {t} Baz p:1\nCompleted: x {t} Foo id:1\n".format(t=self.today) self.assertTrue(self.todolist.dirty) self.assertEqual(self.output, result) self.assertEqual(self.errors, "")
def test_do_custom_date8(self): """ Convert relative completion dates to an absolute date (yesterday). """ command = DoCommand(["-d", "yesterday", "3"], self.todolist, self.out, self.error) command.execute() command.execute_post_archive_actions() self.assertTrue(self.todolist.dirty) self.assertEqual(self.output, "Completed: x {} Baz p:1\n".format(self.yesterday)) self.assertEqual(self.errors, "")
def test_do_subtasks2(self): command = DoCommand(["1"], self.todolist, self.out, self.error, _no_prompt) command.execute() command.execute_post_archive_actions() result = "| 2| Bar p:1\n| 3| Baz p:1\nCompleted: x {} Foo id:1\n".format(self.today) self.assertTrue(self.todolist.dirty) self.assertTrue(self.todolist.todo(1).is_completed()) self.assertFalse(self.todolist.todo(2).is_completed()) self.assertFalse(self.todolist.todo(3).is_completed()) self.assertEqual(self.output, result) self.assertEqual(self.errors, "")
def test_do_subtasks_force2(self): def prompt(p_prompt): prompt.prompt_shown = True prompt.prompt_shown = False command = DoCommand(["--force", "1"], self.todolist, self.out, self.error, prompt) command.execute() command.execute_post_archive_actions() self.assertFalse(prompt.prompt_shown) self.assertEqual(self.errors, "") self.assertFalse(self.todolist.todo(2).is_completed())