def example_distribution(self, runner): |
|
tmpdir = tmp |
dirname = "sub_lsession"+runner.func_name |
tmpdir.ensure(dirname, "__init__.py") |
tmpdir.ensure(dirname, "test_one.py").write(py.code.Source(""" |
def test_1(): |
pass |
def test_2(): |
assert 0 |
def test_3(): |
raise ValueError(23) |
def test_4(someargs): |
pass |
#def test_5(): |
# import os |
# os.kill(os.getpid(), 11) |
""")) |
args = [str(tmpdir.join(dirname))] |
config = py.test.config._reparse(args) |
lsession = LSession(config) |
allevents = [] |
-> lsession.main(reporter=allevents.append, runner=runner) |
testevents = [x for x in allevents |
if isinstance(x, repevent.ReceivedItemOutcome)] |
assert len(testevents) |
passevents = [i for i in testevents if i.outcome.passed] |
failevents = [i for i in testevents if i.outcome.excinfo] |
skippedevents = [i for i in testevents if i.outcome.skipped] |
signalevents = [i for i in testevents if i.outcome.signal] |
assert len(passevents) == 1 |
assert len(failevents) == 3 |
assert len(skippedevents) == 0 |
|
tb = failevents[0].outcome.excinfo.traceback |
assert str(tb[0].path).find("test_one") != -1 |
assert str(tb[0].source).find("test_2") != -1 |
assert failevents[0].outcome.excinfo.typename == 'AssertionError' |
tb = failevents[1].outcome.excinfo.traceback |
assert str(tb[0].path).find("test_one") != -1 |
assert str(tb[0].source).find("test_3") != -1 |
assert failevents[1].outcome.excinfo.typename == 'ValueError' |
assert str(failevents[1].outcome.excinfo.value) == '23' |
tb = failevents[2].outcome.excinfo.traceback |
assert failevents[2].outcome.excinfo.typename == 'TypeError' |
assert str(tb[0].path).find("executor") != -1 |
assert str(tb[0].source).find("execute") != -1 |