Esempio n. 1
0
    def test_normal(self):
        output = StringIO()
        rep = reporter.JsonReporter(output)
        t1 = Task("t1", None)
        t2 = Task("t2", None)
        t3 = Task("t3", None)
        t4 = Task("t4", None)
        expected = {'t1':'fail', 't2':'up-to-date',
                    't3':'success', 't4':'ignore'}
        # t1 fail
        rep.get_status(t1)
        rep.execute_task(t1)
        rep.add_failure(t1, CatchedException('t1 failed!'))
        # t2 skipped
        rep.get_status(t2)
        rep.skip_uptodate(t2)
        # t3 success
        rep.get_status(t3)
        rep.execute_task(t3)
        rep.add_success(t3)
        # t4 ignore
        rep.get_status(t4)
        rep.skip_ignore(t4)

        rep.teardown_task(t4)

        rep.complete_run()
        got = json.loads(output.getvalue())
        for task_result in got['tasks']:
            assert expected[task_result['name']] == task_result['result'], got
            if task_result['name'] == 't1':
                assert 't1 failed!' in task_result['error']
Esempio n. 2
0
 def test_ignore_stdout(self):
     output = StringIO()
     rep = reporter.JsonReporter(output)
     sys.stdout.write("info that doesnt belong to any task...")
     sys.stderr.write('something on err')
     t1 = Task("t1", None)
     expected = {'t1':'success'}
     rep.get_status(t1)
     rep.execute_task(t1)
     rep.add_success(t1)
     rep.complete_run()
     got = json.loads(output.getvalue())
     assert expected[got['tasks'][0]['name']] == got['tasks'][0]['result']
     assert "info that doesnt belong to any task..." == got['out']
     assert "something on err" == got['err']
Esempio n. 3
0
 def test_runtime_error(self):
     output = StringIO()
     rep = reporter.JsonReporter(output)
     t1 = Task("t1", None)
     msg = "runtime error"
     assert [] == rep.errors
     rep.get_status(t1)
     rep.execute_task(t1)
     rep.add_success(t1)
     rep.runtime_error(msg)
     assert [msg] == rep.errors
     assert "" in rep.outstream.getvalue()
     # runtime errors abort execution
     rep.complete_run()
     got = json.loads(output.getvalue())
     assert msg in got['err']
Esempio n. 4
0
 def test_cleanup_error(self, capsys):
     output = StringIO()
     rep = reporter.JsonReporter(output)
     t1 = Task("t1", None)
     msg = "cleanup error"
     exception = CatchedException(msg)
     assert [] == rep.errors
     rep.get_status(t1)
     rep.execute_task(t1)
     rep.add_success(t1)
     rep.cleanup_error(exception)
     assert [msg+'\n'] == rep.errors
     assert "" in rep.outstream.getvalue()
     rep.complete_run()
     got = json.loads(output.getvalue())
     assert msg in got['err']