def testCustomReporter(self, depfile): output = StringIO.StringIO() class MyReporter(reporter.ConsoleReporter): def get_status(self, task): self.outstream.write('MyReporter.start %s\n' % task.name) cmds.doit_run(depfile.name, [tasks_sample()[0]], output, reporter=MyReporter) got = output.getvalue().split("\n")[:-1] assert 'MyReporter.start t1' == got[0]
def testSetVerbosity(self, depfile): output = StringIO.StringIO() t = Task('x', None) used_verbosity = [] def my_execute(out, err, verbosity): used_verbosity.append(verbosity) t.execute = my_execute cmds.doit_run(depfile.name, [t], output, verbosity=2) assert 2 == used_verbosity[0], used_verbosity
def test_outfile(self, depfile): cmds.doit_run(depfile.name, tasks_sample(), 'test.out', ["g1.a"]) try: outfile = open('test.out', 'r') got = outfile.read() outfile.close() assert ". g1.a\n" == got, repr(got) finally: if os.path.exists('test.out'): os.remove('test.out')
def testSetVerbosity(self): remove_testdb() output = StringIO.StringIO() t = Task('x', None) used_verbosity = [] def my_execute(out, err, verbosity): used_verbosity.append(verbosity) t.execute = my_execute cmds.doit_run(TESTDB, [t], output, verbosity=2) assert 2 == used_verbosity[0], used_verbosity
def testProcessRunMP(self): remove_testdb() output = StringIO.StringIO() result = cmds.doit_run(TESTDB, tasks_sample(), output, num_process=1) assert 0 == result got = output.getvalue().split("\n")[:-1] assert [". t1", ". t2", ". g1.a", ". g1.b", ". t3"] == got
def cmd_run(params, args): """execute cmd 'run' """ # special parameters that dont run anything if params["version"]: print_version() return 0 if params["help"]: print_usage() return 0 # check if no sub-command specified. default command is "run" if len(args) == 0 or args[0] not in params['sub']: dodo_tasks = loader.get_tasks(*_path_params(params)) params.update_defaults(dodo_tasks['config']) default_tasks = args or dodo_tasks['config'].get('default_tasks') return doit_run(params['dep_file'], dodo_tasks['task_list'], params['outfile'], default_tasks, params['verbosity'], params['always'], params['continue'], params['reporter'], params['num_process']) # explicit sub-cmd. parse arguments again commands = params['sub'] sub_cmd = args.pop(0) return commands[sub_cmd](args, **params)
def testProcessRunEmptyFilter(self, depfile): output = StringIO.StringIO() cmds.doit_run(depfile.name, tasks_sample(), output, []) got = output.getvalue().split("\n")[:-1] assert [] == got
def testProcessRunFilter(self, depfile): output = StringIO.StringIO() cmds.doit_run(depfile.name, tasks_sample(), output, ["g1.a"]) got = output.getvalue().split("\n")[:-1] assert [". g1.a"] == got, repr(got)
def testProcessRunMP(self, depfile): output = StringIO.StringIO() result = cmds.doit_run(depfile.name, tasks_sample(), output, num_process=1) assert 0 == result got = output.getvalue().split("\n")[:-1] assert [". t1", ". t2", ". g1.a", ". g1.b", ". t3"] == got
def testProcessRunEmptyFilter(self): remove_testdb() output = StringIO.StringIO() cmds.doit_run(TESTDB, tasks_sample(), output, []) got = output.getvalue().split("\n")[:-1] assert [] == got