Ejemplo n.º 1
0
 def test_fail(self):
     def my_raise():
         raise Exception('hoho')
     t = task.Task('t1', [], teardown=[(my_raise,)])
     t.execute(Stream(0))
     got = t.execute_teardown(Stream(0))
     assert isinstance(got, CatchedException)
Ejemplo n.º 2
0
 def test_ok(self):
     got = []
     def put(x):
         got.append(x)
     t = task.Task('t1', [], teardown=[(put, [1]), (put, [2])])
     t.execute(Stream(0))
     assert None == t.execute_teardown(Stream(0))
     assert [1,2] == got
Ejemplo n.º 3
0
 def test_values(self):
     def return_dict(d): return d
     # task.result is the value of last action
     t = task.Task('t1', [(return_dict, [{'x':5}]),
                          (return_dict, [{'y':10}]),])
     t.execute(Stream(0))
     assert {'x':5, 'y':10} == t.values
Ejemplo n.º 4
0
 def test_many(self):
     t = task.Task("taskX",["%s hi_stdout hi2" % PROGRAM,
                            "%s hi_list hi6" % PROGRAM])
     t.dep_changed = []
     t.execute(Stream(0))
     got = "".join([a.out for a in t.actions])
     assert "hi_stdouthi_list" == got, repr(got)
Ejemplo n.º 5
0
    def test_calc_dep(self):
        def calc_intermediate():
            return {'file_dep': ['intermediate']}
        tasks = {'t1': Task('t1', None, calc_dep=['t2']),
                 't2': Task('t2', [calc_intermediate]),
                 't3': Task('t3', None, targets=['intermediate']),
                 }
        td = TaskDispatcher(tasks, {'intermediate': 't3'}, None)
        n1 = td._gen_node(None, 't1')
        n2 = n1.step()
        assert tasks['t2'] == n2.task
        assert 'wait' == n1.step()
        # execute t2 to process calc_dep
        tasks['t2'].execute(Stream(0))
        td.nodes['t2'].run_status = 'done'
        td._update_waiting(n2)
        n3 = n1.step()
        assert tasks['t3'] == n3.task
        assert 'intermediate' in tasks['t1'].file_dep
        assert 't3' in tasks['t1'].task_dep

        # t3 was added by calc dep
        assert 'wait' == n1.step()
        n3.run_status = 'done'
        td._update_waiting(n3)
        assert tasks['t1'] == n1.step()
Ejemplo n.º 6
0
 def test_result(self):
     # task.result is the value of last action
     t = task.Task('t1', ["%s hi_list hi1" % PROGRAM,
                          "%s hi_list hi2" % PROGRAM])
     t.dep_changed = []
     t.execute(Stream(0))
     assert "hi_listhi2" == t.result
Ejemplo n.º 7
0
def execute_plugin_tasks(plugin: Task, verbosity: int = 0):
    tasks = generate_tasks(plugin.name, plugin.gen_tasks())
    stream = Stream(verbosity)
    for t in tasks:
        catched = t.execute(stream)
        if catched:
            raise Exception("Task error for '{}'\n{}".format(
                t.name, catched.get_msg()))
Ejemplo n.º 8
0
 def test_mixed(self):
     def my_print(msg):
         print(msg, end='')
     t = task.Task("taskX",["%s hi_stdout hi2" % PROGRAM,
                            (my_print,['_PY_']),
                            "%s hi_list hi6" % PROGRAM])
     t.dep_changed = []
     t.execute(Stream(0))
     got = "".join([a.out for a in t.actions])
     assert "hi_stdout_PY_hi_list" == got, repr(got)
Ejemplo n.º 9
0
 def test_options(self):
     # when task is created, options contain the default values
     p1 = {'name':'p1', 'default':'p1-default'}
     p2 = {'name':'p2', 'default':'', 'short':'m'}
     t = task.Task("MyName", None, params=[p1, p2], pos_arg='pos')
     t.execute(Stream(0))
     assert 'p1-default' == t.options['p1']
     assert '' == t.options['p2']
     assert 'pos' == t.pos_arg
     assert None == t.pos_arg_val # always uninitialized
Ejemplo n.º 10
0
    def test_task_verbosity_not_specified(self):
        # default
        v0 = Stream(None)
        assert v0.effective_verbosity(None) == 1

        v2 = Stream(2)
        assert v2.effective_verbosity(None) == 2
Ejemplo n.º 11
0
 def test_from_task(self):
     # use value from task, not global from Stream
     v0 = Stream(0)
     assert v0.effective_verbosity(1) == 1
     assert v0.effective_verbosity(2) == 2
     v2 = Stream(2)
     assert v2.effective_verbosity(0) == 0
     assert v2.effective_verbosity(1) == 1
Ejemplo n.º 12
0
    def test(self):
        def sample():
            print("this is printed")

        t1 = Task("t1", [(sample, )])
        result = reporter.TaskResult(t1)
        result.start()
        t1.execute(Stream(0))
        result.set_result('success')
        got = result.to_dict()
        assert t1.name == got['name'], got
        assert 'success' == got['result'], got
        assert "this is printed\n" == got['out'], got
        assert "" == got['err'], got
        assert got['started']
        assert 'elapsed' in got
Ejemplo n.º 13
0
 def test_fail_second(self):
     t = task.Task("taskX", ["%s 1 2" % PROGRAM, "%s 1 2 3" % PROGRAM])
     got = t.execute(Stream(0))
     assert isinstance(got, TaskError)
Ejemplo n.º 14
0
 def test_force_global(self):
     # use value from task, not global from Stream
     v0 = Stream(0, force_global=True)
     assert v0.effective_verbosity(2) == 0
     v2 = Stream(2, force_global=True)
     assert v2.effective_verbosity(0) == 2
Ejemplo n.º 15
0
 def test_success(self):
     t = task.Task("taskX", [PROGRAM])
     t.execute(Stream(0))