def test_todo_add_to_new_project(): tmp = mktmpdir() todofile = create_todo_file(tmp, todo_content_complex) parsergenerator = TaskParserGenerator(todofile) tasks, lastindex = parsergenerator.parse() todo = Todo.TodoCommands(tasks, lastindex) todo.add(('@test-project-3', 'hello there world')) parsergenerator.generate(tasks) with file(todofile) as fobj: want = ( "$version 1", "A - - test-task-1", "B - - test-task-2", "@test-project-1", "B - - test-task-4", "C - - test-task-3", "@test-project-2", "B - - test-task-5", "@test-project-3", "C - - hello there world" ) result = fobj.read() assert result == '\n'.join(want) + '\n'
def test_task_parser_missing_version(): tmpdir = mktmpdir() todo_file = os.path.join(tmpdir, 'todo') with file(todo_file, 'w') as f: f.write('\n'.join(todo_content_complex[1:])) taskparsergenerator = TaskParserGenerator(todo_file) with want_exception(ValueError('incorrect version in todo file')): tasks, _ = taskparsergenerator.parse()
def test_task_parser_missing_version(): tmpdir = mktmpdir() todo_file = os.path.join(tmpdir, 'todo') with file(todo_file, 'w') as f: f.write('\n'.join(todo_content_complex[1:])) taskparsergenerator = TaskParserGenerator(todo_file) with want_exception( ValueError('incorrect version in todo file') ): tasks, _ = taskparsergenerator.parse()
def __init__(self, args): self.no_colors = False def parse_args_and_opts(args): optionParser = OptionParser() for opt in Todo.opts: optionParser.add_option(*opt[4:], help=opt[0], action=opt[1], dest=opt[2], default=opt[3]) return optionParser.parse_args() if not os.path.exists(os.path.dirname(_todo_file)): os.mkdir(os.path.dirname(_todo_file)) if not os.path.exists(_todo_file): with file(_todo_file, 'w') as f: pass try: opts, args = parse_args_and_opts(args) setattr(Todo, 'no_colors', opts.no_colors) parserGenerator = TaskParserGenerator(_todo_file) tasks, last_index = parserGenerator.parse() commandParser = CommandParser([cmd[1] for cmd in Todo.cmds]) command, args_left = commandParser.parse(args) changes = getattr(Todo.TodoCommands(tasks, last_index), command)(args_left) if changes: parserGenerator.generate(tasks) except (TodoError, IOError, ValueError) as err: print('error: {0}'.format(err))
def test_todo_pri(): tmp = mktmpdir() todofile = create_todo_file(tmp, todo_content_complex) parsergenerator = TaskParserGenerator(todofile) tasks, lastindex = parsergenerator.parse() todo = Todo.TodoCommands(tasks, lastindex) todo.pri(['@test-project-1', "A"]) parsergenerator.generate(tasks) with file(todofile) as fobj: want = ( "$version 1", "A - - test-task-1", "B - - test-task-2", "@test-project-1", "A - - test-task-3", "A - - test-task-4", "@test-project-2", "B - - test-task-5") result = fobj.read() assert result == '\n'.join(want) + '\n'
def __init__(self, args): self.no_colors = False def parse_args_and_opts(args): optionParser = OptionParser() for opt in Todo.opts: optionParser.add_option(*opt[4:], help=opt[0], action=opt[1], dest=opt[2], default=opt[3]) return optionParser.parse_args() if not os.path.exists(os.path.dirname(_todo_file)): os.mkdir(os.path.dirname(_todo_file)) if not os.path.exists(_todo_file): with file(_todo_file, "w") as f: pass try: opts, args = parse_args_and_opts(args) setattr(Todo, "no_colors", opts.no_colors) parserGenerator = TaskParserGenerator(_todo_file) tasks, last_index = parserGenerator.parse() commandParser = CommandParser([cmd[1] for cmd in Todo.cmds]) command, args_left = commandParser.parse(args) changes = getattr(Todo.TodoCommands(tasks, last_index), command)(args_left) if changes: parserGenerator.generate(tasks) except (TodoError, IOError, ValueError) as err: print ("error: {0}".format(err))