Пример #1
0
def CmdFactory(cls,
               outstream=None,
               task_loader=None,
               dep_file=None,
               backend=None,
               task_list=None,
               sel_tasks=None,
               dep_manager=None,
               config=None,
               cmds=None):
    """helper for test code, so test can call _execute() directly"""
    loader = get_loader(config, task_loader, cmds)
    cmd = cls(task_loader=loader, config=config, cmds=cmds)

    if outstream:
        cmd.outstream = outstream
    if backend:
        assert backend == "dbm"  # the only one used on tests
        cmd.dep_manager = Dependency(DbmDB, dep_file, MD5Checker)
    elif dep_manager:
        cmd.dep_manager = dep_manager
    cmd.dep_file = dep_file  # (str) filename usually '.doit.db'
    cmd.task_list = task_list  # list of tasks
    cmd.sel_tasks = sel_tasks  # from command line or default_tasks
    return cmd
Пример #2
0
    def test_execute(self, depfile_name):
        members = {'task_xxx1': lambda : {'actions':[]},}
        loader = get_loader({}, task_loader=ModuleTaskLoader(members))

        mycmd = self.MyCmd(task_loader=loader)
        assert 'min' == mycmd.parse_execute([
            '--db-file', depfile_name,
            '--mine', 'min'])
Пример #3
0
    def test_execute(self, depfile_name):
        members = {'task_xxx1': lambda : {'actions':[]},}
        loader = get_loader({}, task_loader=ModuleTaskLoader(members))

        mycmd = self.MyCmd(task_loader=loader)
        assert 'min' == mycmd.parse_execute([
            '--db-file', depfile_name,
            '--mine', 'min'])
Пример #4
0
 def testPluginLoader(self):
     entry_point = {'mod': 'tests.sample_plugin:MyLoader'}
     config = {
         'GLOBAL': {'loader': 'mod'},
         'LOADER': entry_point,
     }
     loader = get_loader(config)
     mycmd = self.MyCmd(task_loader=loader, config=config)
     assert mycmd.loader.__class__.__name__ == 'MyLoader'
     task_list, dodo_config = mycmd.loader.load_tasks(mycmd, {}, [])
     assert task_list[0].name == 'sample_task'
     assert dodo_config == {'verbosity': 2}
Пример #5
0
    def test_new_cmd(self):
        class MyRawCmd(self.MyCmd):
            def execute(self, params, args):
                return params['my_opt']

        members = {'task_xxx1': lambda : {'actions':[]},}
        cmds = {'foo':None, 'bar':None}
        loader = get_loader({}, task_loader=ModuleTaskLoader(members),
                            cmds=cmds)
        mycmd = MyRawCmd(task_loader=loader)
        assert mycmd.loader.cmd_names == ['bar', 'foo']
        assert 'min' == mycmd.parse_execute(['--mine', 'min'])
Пример #6
0
 def testPluginLoader(self):
     entry_point = {'mod': 'tests.sample_plugin:MyLoader'}
     config = {
         'GLOBAL': {'loader': 'mod'},
         'LOADER': entry_point,
     }
     loader = get_loader(config)
     mycmd = self.MyCmd(task_loader=loader, config=config)
     assert mycmd.loader.__class__.__name__ == 'MyLoader'
     task_list, dodo_config = mycmd.loader.load_tasks(mycmd, {}, [])
     assert task_list[0].name == 'sample_task'
     assert dodo_config == {'verbosity': 2}
Пример #7
0
    def test_new_cmd(self):
        class MyRawCmd(self.MyCmd):
            def execute(self, params, args):
                return params['my_opt']

        members = {'task_xxx1': lambda : {'actions':[]},}
        cmds = {'foo':None, 'bar':None}
        loader = get_loader({}, task_loader=ModuleTaskLoader(members),
                            cmds=cmds)
        mycmd = MyRawCmd(task_loader=loader)
        assert mycmd.loader.cmd_names == ['bar', 'foo']
        assert 'min' == mycmd.parse_execute(['--mine', 'min'])
Пример #8
0
    def test_execute_provides_dep_manager(self, mock_globals, depfile_name):
        mock_globals.dep_manager = None
        members = {'task_xxx1': lambda: {'actions': []}}

        class MockTaskLoader(ModuleTaskLoader):
            def load_tasks(self, cmd, pos_args):
                # ensure dep_manager is set before tasks are loaded:
                assert mock_globals.dep_manager
                return super().load_tasks(cmd, pos_args)

        loader = get_loader({}, task_loader=MockTaskLoader(members))
        mycmd = self.MyCmd(task_loader=loader)

        mycmd.parse_execute(['--db-file', depfile_name, '--mine', 'min'])
        assert mock_globals.dep_manager == mycmd.dep_manager
Пример #9
0
def CmdFactory(cls, outstream=None, task_loader=None, dep_file=None,
               backend=None, task_list=None, sel_tasks=None,
               dep_manager=None, config=None, cmds=None):
    """helper for test code, so test can call _execute() directly"""
    loader = get_loader(config, task_loader, cmds)
    cmd = cls(task_loader=loader, config=config, cmds=cmds)

    if outstream:
        cmd.outstream = outstream
    if backend:
        assert backend == "dbm"  # the only one used on tests
        cmd.dep_manager = Dependency(DbmDB, dep_file, MD5Checker)
    elif dep_manager:
        cmd.dep_manager = dep_manager
    cmd.dep_file = dep_file  # (str) filename usually '.doit.db'
    cmd.task_list = task_list  # list of tasks
    cmd.sel_tasks = sel_tasks  # from command line or default_tasks
    return cmd