""" test reporting functionality. """ import py from py.__.test import repevent def test_wrapcall_ok(): l = [] def ok(x): return x+1 i = repevent.wrapcall(l.append, ok, 1) assert i == 2 assert len(l) == 2 assert isinstance(l[0], repevent.CallStart) assert isinstance(l[1], repevent.CallFinish) assert repr(l[0]) assert repr(l[1]) def test_wrapcall_exception(): l = [] def fail(x): raise ValueError py.test.raises(ValueError, "repevent.wrapcall(l.append, fail, 1)") assert len(l) == 2 assert isinstance(l[0], repevent.CallStart) assert isinstance(l[1], repevent.CallException) def test_reporter_methods_sanity(): """ Checks if all the methods of reporter are sane """ from py.__.test.reporter import RemoteReporter for method in dir(RemoteReporter): if method.startswith("report_") and method != "report_unknown": assert method[len('report_'):] in repevent.__dict__ def test_repevent_failures(): from py.__.test.outcome import SerializableOutcome, ReprOutcome assert not repevent.ReportEvent().is_failure() assert not repevent.CallEvent(None, None, None).is_failure() assert repevent.FailedTryiter(None, None).is_failure() out = ReprOutcome(SerializableOutcome().make_repr()) assert not repevent.ReceivedItemOutcome(None, None, out).is_failure() out = ReprOutcome(SerializableOutcome(skipped="xxx").make_repr()) assert not repevent.ReceivedItemOutcome(None, None, out).is_failure() try: 1/0 except: exc = py.code.ExceptionInfo() out = ReprOutcome(SerializableOutcome(excinfo=exc).make_repr()) assert repevent.ReceivedItemOutcome(None, None, out).is_failure()