test_ok1/py/test/testing/test_repevent.py

54 lines
1.7 KiB
Python

""" 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()