54 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			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()
 | |
|     
 |