Exemple #1
0
def apigen_runner(item, session, reporter):
    #retval = plain_runner(item, session, reporter)
    startcapture(session)
    r = ApigenExecutor(item, reporter=reporter, config=session.config)
    outcome = r.execute(session.tracer)
    outcome = ReprOutcome(outcome.make_repr(session.config.option.tbstyle))
    outcome.stdout, outcome.stderr = finishcapture(session)
    return outcome
Exemple #2
0
    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