Ejemplo n.º 1
0
        def archive(self, args):
            archived = []
            project = None

            for task in self.tasks:
                if isinstance(task, Project):
                    archived_project = None
                    archived_tasks = task.get_done()
                    if archived_tasks:
                        archived_project = Project(task.name, archived_tasks)
                        archived.append(archived_project)

                elif task.done:
                    archived.append(task)
                    self.tasks.remove(task)

            if archived:
                date = datetime.now().isoformat()
                name = _archive_tmpl + "_" + date

                with file(name, "w") as f:
                    pass

                parserGenerator = TaskParserGenerator(name)
                parserGenerator.generate(archived)

                return True
Ejemplo n.º 2
0
        def archive(self, args):
            archived = []
            project = None

            for task in self.tasks:
                if isinstance(task, Project):
                    archived_project = None
                    archived_tasks = task.get_done()
                    if archived_tasks:
                        archived_project = Project(task.name, archived_tasks)
                        archived.append(archived_project)

                elif task.done:
                    archived.append(task)
                    self.tasks.remove(task)

            if archived:
                date = datetime.now().isoformat()
                name = _archive_tmpl + '_' + date

                with file(name, 'w') as f:
                    pass

                parserGenerator = TaskParserGenerator(name)
                parserGenerator.generate(archived)

                return True
Ejemplo n.º 3
0
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'
Ejemplo n.º 4
0
    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))
Ejemplo n.º 5
0
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'
Ejemplo n.º 6
0
    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))