def test_apigen_executor(self): |
class Tracer(object): |
def __init__(self): |
self.starts = 0 |
self.ends = 0 |
|
def start_tracing(self): |
self.starts += 1 |
|
def end_tracing(self): |
self.ends += 1 |
|
tmpdir = py.test.ensuretemp("apigen_executor") |
tmpdir.ensure("__init__.py") |
tmpdir.ensure("test_one.py").write(py.code.Source(""" |
def g(): |
pass |
|
def test_1(): |
g() |
|
class TestX(object): |
def setup_method(self, m): |
self.ttt = 1 |
|
def test_one(self): |
self.ttt += 1 |
|
def test_raise(self): |
1/0 |
""")) |
-> config = py.test.config._reparse([tmpdir]) |
rootcol = config._getcollector(tmpdir) |
tracer = Tracer() |
item = rootcol._getitembynames("test_one.py/test_1") |
ex = ApigenExecutor(item, config=config) |
out1 = ex.execute(tracer) |
item = rootcol._getitembynames("test_one.py/TestX/()/test_one") |
ex = ApigenExecutor(item, config=config) |
out2 = ex.execute(tracer) |
item = rootcol._getitembynames("test_one.py/TestX/()/test_raise") |
ex = ApigenExecutor(item, config=config) |
out3 = ex.execute(tracer) |
assert tracer.starts == 3 |
assert tracer.ends == 3 |
assert out1.passed |
assert out2.passed |
assert not out3.passed |