def test_expr_del5(self): """ Force deleting unrelevant items with additional -x flag. """ command = DeleteCommand(["-xe", ""], self.todolist, self.out, self.error, _yes_prompt) command.execute() self.assertTrue(self.todolist.dirty) self.assertEqual(self.todolist.count(), 0)
def test_expr_del3(self): command = DeleteCommand( ["-e", "@test", "due:2015-06-03", "+project"], self.todolist, self.out, self.error, None ) command.execute() self.assertFalse(self.todolist.dirty)
def test_del8(self): command = DeleteCommand(["A"], self.todolist, self.out, self.error) command.execute() self.assertFalse(self.todolist.is_dirty()) self.assertEqual(self.output, "") self.assertEqual(self.errors, "Invalid todo number given.\n")
def test_empty(self): command = DeleteCommand([], 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_help(self): command = DeleteCommand(["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_del2(self): command = DeleteCommand(["-e", "@test", "due:2015-06-03"], self.todolist, self.out, self.error, None) command.execute() self.assertTrue(self.todolist.dirty) self.assertEqual(self.output, "Removed: a @test with due:2015-06-03\n") self.assertEqual(self.errors, "")
def test_expr_del2(self): command = DeleteCommand(["-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, "Removed: a @test with due:2015-06-03\n") self.assertEqual(self.errors, "")
def test_multi_del4(self): """ Check output when all supplied todo numbers are invalid. """ command = DeleteCommand(["99", "A"], self.todolist, self.out, self.error, _yes_prompt) command.execute() self.assertFalse(self.todolist.dirty) self.assertEqual(self.output, "") self.assertEqual(self.errors, "Invalid todo number given: 99.\nInvalid todo number given: A.\n")
def test_multi_del5(self): """ Throw an error with invalid argument containing special characters. """ command = DeleteCommand([u("Fo\u00d3B\u0105r"), "Bar"], self.todolist, self.out, self.error, None) command.execute() self.assertFalse(self.todolist.is_dirty()) self.assertEqual(self.output, "") self.assertEqual(self.errors, u("Invalid todo number given: Fo\u00d3B\u0105r.\n"))
def test_del5(self): command = DeleteCommand(["2"], self.todolist, self.out, self.error) command.execute() self.assertTrue(self.todolist.is_dirty()) self.assertEqual(self.todolist.todo(1).source(), "Foo") self.assertEqual(self.output, "Removed: Bar p:1\nThe following todo item(s) became active:\n| 1| Foo\n") self.assertEqual(self.errors, "")
def test_expr_del5(self): """ Force deleting unrelevant items with additional -x flag. """ command = DeleteCommand(["-xe", ""], self.todolist, self.out, self.error, _yes_prompt) command.execute() self.assertTrue(self.todolist.is_dirty()) self.assertEqual(self.todolist.count(), 0)
def test_del4(self): command = DeleteCommand(["--force", "1"], self.todolist, self.out, self.error, _yes_prompt) command.execute() self.assertTrue(self.todolist.dirty) self.assertEqual(self.todolist.count(), 3) # force won't delete subtasks self.assertEqual(self.output, "| 2| Bar p:1\nRemoved: Foo id:1\n") self.assertEqual(self.errors, "")
def test_del1_regex(self): command = DeleteCommand(["Foo"], self.todolist, self.out, self.error, _no_prompt) command.execute() self.assertTrue(self.todolist.dirty) self.assertEqual(self.todolist.todo(1).source(), "Bar") self.assertEqual(self.output, "| 2| Bar p:1\nRemoved: Foo id:1\n") self.assertEqual(self.errors, "")
def test_empty(self): command = DeleteCommand([], 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_multi_del3(self): """ Fail if any of supplied todo numbers is invalid. """ command = DeleteCommand(["99", "2"], self.todolist, self.out, self.error, _yes_prompt) command.execute() self.assertFalse(self.todolist.dirty) self.assertEqual(self.output, "") self.assertEqual(self.errors, "Invalid todo number given: 99.\n")
def test_help(self): command = DeleteCommand(["help"], self.todolist, self.out, self.error) command.execute() command.execute_post_archive_actions() self.assertEqual(self.output, "") self.assertEqual(self.errors, command.usage() + "\n\n" + command.help() + "\n")
def test_del2(self): command = DeleteCommand(["1"], self.todolist, self.out, self.error, _yes_prompt) command.execute() self.assertTrue(self.todolist.dirty) self.assertEqual(self.todolist.count(), 2) self.assertEqual(self.output, "| 2| Bar p:1\nRemoved: Bar\nRemoved: Foo\n") self.assertEqual(self.errors, "")
def test_del8(self): command = DeleteCommand(["A"], self.todolist, self.out, self.error) command.execute() command.execute_post_archive_actions() self.assertFalse(self.todolist.dirty) self.assertEqual(self.output, "") self.assertEqual(self.errors, "Invalid todo number given.\n")
def test_multi_del3(self): """ Fail if any of supplied todo numbers is invalid. """ command = DeleteCommand(["99", "2"], self.todolist, self.out, self.error, _yes_prompt) command.execute() self.assertFalse(self.todolist.is_dirty()) self.assertEqual(self.output, "") self.assertEqual(self.errors, "Invalid todo number given: 99.\n")
def test_multi_del2(self): """ Test deletion of multiple items. """ command = DeleteCommand(["1", "2"], self.todolist, self.out, self.error, _yes_prompt) command.execute() result = "a @test with due:2015-06-03\na @test with +project" self.assertEqual(self.todolist.count(), 2) self.assertEqual(self.todolist.print_todos(), result)
def test_del1_regex(self): command = DeleteCommand(["Foo"], self.todolist, self.out, self.error, _no_prompt) command.execute() self.assertTrue(self.todolist.is_dirty()) self.assertEqual(self.todolist.todo(1).source(), "Bar") self.assertEqual(self.output, "| 2| Bar p:1\nRemoved: Foo id:1\n") self.assertEqual(self.errors, "")
def test_del4(self): command = DeleteCommand(["--force", "1"], self.todolist, self.out, self.error, _yes_prompt) command.execute() self.assertTrue(self.todolist.is_dirty()) self.assertEqual(self.todolist.count(), 3) # force won't delete subtasks self.assertEqual(self.output, "| 2| Bar p:1\nRemoved: Foo id:1\n") self.assertEqual(self.errors, "")
def test_del2(self): command = DeleteCommand(["1"], self.todolist, self.out, self.error, _yes_prompt) command.execute() self.assertTrue(self.todolist.is_dirty()) self.assertEqual(self.todolist.count(), 2) self.assertEqual(self.output, "| 2| Bar p:1\nRemoved: Bar\nRemoved: Foo\n") self.assertEqual(self.errors, "")
def test_expr_del1(self): command = DeleteCommand(["-e", "@test"], self.todolist, self.out, self.error, None) command.execute() result = "Removed: a @test with due:2015-06-03\nRemoved: a @test with +project\n" self.assertTrue(self.todolist.dirty) self.assertEqual(self.todolist.count(), 2) self.assertEqual(self.output, result) self.assertEqual(self.errors, "")
def test_expr_del4(self): """ Remove only relevant todo items. """ command = DeleteCommand(["-e", ""], self.todolist, self.out, self.error, None) command.execute() result = "Foo" self.assertTrue(self.todolist.dirty) self.assertEqual(self.todolist.count(), 1) self.assertEqual(self.todolist.print_todos(), result)
def test_del1(self): command = DeleteCommand(["1"], self.todolist, self.out, self.error, _no_prompt) command.execute() command.execute_post_archive_actions() self.assertTrue(self.todolist.dirty) self.assertEqual(self.todolist.todo(1).source(), "Bar") self.assertEqual(self.output, "| 2| Bar p:1\nRemoved: Foo id:1\n") self.assertEqual(self.errors, "")
def test_multi_del4(self): """ Check output when all supplied todo numbers are invalid. """ command = DeleteCommand(["99", "A"], self.todolist, self.out, self.error, _yes_prompt) command.execute() self.assertFalse(self.todolist.is_dirty()) self.assertEqual(self.output, "") self.assertEqual( self.errors, "Invalid todo number given: 99.\nInvalid todo number given: A.\n")
def test_del3(self): command = DeleteCommand(["-f", "1"], self.todolist, self.out, self.error, _yes_prompt) command.execute() command.execute_post_archive_actions() self.assertTrue(self.todolist.dirty) self.assertEqual(self.todolist.count(), 3) # force won't delete subtasks self.assertEqual(self.output, "| 2| Bar p:1\nRemoved: Foo id:1\n") self.assertEqual(self.errors, "")
def test_del5(self): command = DeleteCommand(["2"], self.todolist, self.out, self.error) command.execute() self.assertTrue(self.todolist.is_dirty()) self.assertEqual(self.todolist.todo(1).source(), "Foo") self.assertEqual( self.output, "Removed: Bar p:1\nThe following todo item(s) became active:\n| 1| Foo\n" ) self.assertEqual(self.errors, "")
def test_del9(self): """ Test deletion with textual IDs. """ config("test/data/todolist-uid.conf") command = DeleteCommand(["8to"], self.todolist, self.out, self.error) command.execute() result = "Foo\na @test with due:2015-06-03\na @test with +project" self.assertEqual(self.todolist.print_todos(), result) self.assertRaises(InvalidTodoException, self.todolist.todo, 'b0n')
def test_expr_del1(self): command = DeleteCommand(["-e", "@test"], self.todolist, self.out, self.error, None) command.execute() result = "Removed: a @test with due:2015-06-03\nRemoved: a @test with +project\n" self.assertTrue(self.todolist.is_dirty()) self.assertEqual(self.todolist.count(), 2) self.assertEqual(self.output, result) self.assertEqual(self.errors, "")
def test_expr_del4(self): """ Remove only relevant todo items. """ command = DeleteCommand(["-e", ""], self.todolist, self.out, self.error, None) command.execute() result = "Foo" self.assertTrue(self.todolist.is_dirty()) self.assertEqual(self.todolist.count(), 1) self.assertEqual(self.todolist.print_todos(), result)
def test_revert06(self): """ Test attempt of deletion with non-existing backup key""" backup = ChangeSet(self.todolist, self.archive, ['add One']) backup.timestamp = '1' command1 = AddCommand(["One"], self.todolist, self.out, self.error, None) command1.execute() backup.save(self.todolist) backup = ChangeSet(self.todolist, self.archive, ['add Two']) backup.timestamp = '2' command2 = AddCommand(["Two"], self.todolist, self.out, self.error, None) command2.execute() backup.save(self.todolist) backup = ChangeSet(self.todolist, self.archive, ['add Three']) backup.timestamp = '3' command3 = AddCommand(["Three"], self.todolist, self.out, self.error, None) command3.execute() backup.save(self.todolist) backup = ChangeSet(self.todolist, self.archive, ['delete Three']) backup.timestamp = '4' command4 = DeleteCommand(["Three"], self.todolist, self.out, self.error, None) command4.execute() backup.save(self.todolist) backup = ChangeSet() backup.delete('Foo') changesets = list(backup.backup_dict.keys()) changesets.remove('index') index_timestamps = [change[0] for change in backup._get_index()] result = list(set(index_timestamps) - set(changesets)) self.assertEqual(len(changesets), 4) self.assertEqual(result, []) self.assertEqual(self.errors, "")
def test_revert05(self): """ Test for possible backup collisions """ backup = ChangeSet(self.todolist, self.archive, ['add One']) backup.timestamp = '1' command1 = AddCommand(["One"], self.todolist, self.out, self.error, None) command1.execute() backup.save(self.todolist) backup = ChangeSet(self.todolist, self.archive, ['add Two']) backup.timestamp = '2' command2 = AddCommand(["Two"], self.todolist, self.out, self.error, None) command2.execute() backup.save(self.todolist) backup = ChangeSet(self.todolist, self.archive, ['add Three']) backup.timestamp = '3' command3 = AddCommand(["Three"], self.todolist, self.out, self.error, None) command3.execute() backup.save(self.todolist) backup = ChangeSet(self.todolist, self.archive, ['delete Three']) backup.timestamp = '4' command4 = DeleteCommand(["Three"], self.todolist, self.out, self.error, None) command4.execute() backup.save(self.todolist) backup = ChangeSet(self.todolist, self.archive, ['add Four']) backup.timestamp = '5' command4 = AddCommand(["Four"], self.todolist, self.out, self.error, None) command4.execute() backup.save(self.todolist) revert_command = RevertCommand([], self.todolist, self.out, self.error, None) revert_command.execute() self.assertEqual(self.errors, "") self.assertTrue(self.output.endswith("Successfully reverted: add Four\n")) self.assertEqual(self.todolist.print_todos(), "Foo\nBar\nBaz\n{t} One\n{t} Two".format(t=self.today)) revert_command = RevertCommand([], self.todolist, self.out, self.error, None) revert_command.execute() self.assertEqual(self.errors, "") self.assertTrue(self.output.endswith("Successfully reverted: delete Three\n")) self.assertEqual(self.todolist.print_todos(), "Foo\nBar\nBaz\n{t} One\n{t} Two\n{t} Three".format(t=self.today)) revert_command = RevertCommand([], self.todolist, self.out, self.error, None) revert_command.execute() self.assertEqual(self.errors, "") self.assertTrue(self.output.endswith("Successfully reverted: add Three\n")) self.assertEqual(self.todolist.print_todos(), "Foo\nBar\nBaz\n{t} One\n{t} Two".format(t=self.today)) revert_command = RevertCommand([], self.todolist, self.out, self.error, None) revert_command.execute() self.assertEqual(self.errors, "") self.assertTrue(self.output.endswith("Successfully reverted: add Two\n")) self.assertEqual(self.todolist.print_todos(), "Foo\nBar\nBaz\n{t} One".format(t=self.today)) revert_command = RevertCommand([], self.todolist, self.out, self.error, None) revert_command.execute() self.assertEqual(self.errors, "") self.assertTrue(self.output.endswith("Successfully reverted: add One\n")) self.assertEqual(self.todolist.print_todos(), "Foo\nBar\nBaz")
def test_revert05(self): """ Test for possible backup collisions """ backup = ChangeSet(self.todolist, self.archive, ['add One']) backup.timestamp = '1' command1 = AddCommand(["One"], self.todolist, self.out, self.error, None) command1.execute() backup.save(self.todolist) backup = ChangeSet(self.todolist, self.archive, ['add Two']) backup.timestamp = '2' command2 = AddCommand(["Two"], self.todolist, self.out, self.error, None) command2.execute() backup.save(self.todolist) backup = ChangeSet(self.todolist, self.archive, ['add Three']) backup.timestamp = '3' command3 = AddCommand(["Three"], self.todolist, self.out, self.error, None) command3.execute() backup.save(self.todolist) backup = ChangeSet(self.todolist, self.archive, ['delete Three']) backup.timestamp = '4' command4 = DeleteCommand(["Three"], self.todolist, self.out, self.error, None) command4.execute() backup.save(self.todolist) backup = ChangeSet(self.todolist, self.archive, ['add Four']) backup.timestamp = '5' command4 = AddCommand(["Four"], self.todolist, self.out, self.error, None) command4.execute() backup.save(self.todolist) revert_command = RevertCommand([], self.todolist, self.out, self.error, None) revert_command.execute() self.assertEqual(self.errors, "") self.assertTrue( self.output.endswith("Successfully reverted: add Four\n")) self.assertEqual( self.todolist.print_todos(), "Foo\nBar\nBaz\n{t} One\n{t} Two".format(t=self.today)) revert_command = RevertCommand([], self.todolist, self.out, self.error, None) revert_command.execute() self.assertEqual(self.errors, "") self.assertTrue( self.output.endswith("Successfully reverted: delete Three\n")) self.assertEqual( self.todolist.print_todos(), "Foo\nBar\nBaz\n{t} One\n{t} Two\n{t} Three".format(t=self.today)) revert_command = RevertCommand([], self.todolist, self.out, self.error, None) revert_command.execute() self.assertEqual(self.errors, "") self.assertTrue( self.output.endswith("Successfully reverted: add Three\n")) self.assertEqual( self.todolist.print_todos(), "Foo\nBar\nBaz\n{t} One\n{t} Two".format(t=self.today)) revert_command = RevertCommand([], self.todolist, self.out, self.error, None) revert_command.execute() self.assertEqual(self.errors, "") self.assertTrue( self.output.endswith("Successfully reverted: add Two\n")) self.assertEqual(self.todolist.print_todos(), "Foo\nBar\nBaz\n{t} One".format(t=self.today)) revert_command = RevertCommand([], self.todolist, self.out, self.error, None) revert_command.execute() self.assertEqual(self.errors, "") self.assertTrue( self.output.endswith("Successfully reverted: add One\n")) self.assertEqual(self.todolist.print_todos(), "Foo\nBar\nBaz")
def test_expr_del3(self): command = DeleteCommand(["-e", "@test", "due:2015-06-03", "+project"], self.todolist, self.out, self.error, None) command.execute() self.assertFalse(self.todolist.is_dirty())