[py-svn] r56695 - in py/branch/event/py/test2: . testing

hpk at codespeak.net hpk at codespeak.net
Sun Jul 20 19:37:51 CEST 2008


Author: hpk
Date: Sun Jul 20 19:37:49 2008
New Revision: 56695

Modified:
   py/branch/event/py/test2/runner.py
   py/branch/event/py/test2/testing/test_runner.py
Log:
have a nice CRASH report in case a test process gets SIGKILLED 


Modified: py/branch/event/py/test2/runner.py
==============================================================================
--- py/branch/event/py/test2/runner.py	(original)
+++ py/branch/event/py/test2/runner.py	Sun Jul 20 19:37:49 2008
@@ -67,12 +67,23 @@
 
     if result.retval is not None:
         testrep = repevent.ItemTestReport.fromdumps(result.retval) 
-        testrep.stdout = result.out
-        testrep.stderr = result.err
+        #testrep.stdout = result.out
+        #testrep.stderr = result.err
     else:
-        testrep = repevent.ItemTestReport.fromitem(self.item, None, None)
-        testrep.outcome = "failed"
-        testrep.stdout = result.out
-        testrep.stderr = result.err
-        testrep.signal = result.err
+        # xxx look into reusing present/tbpresent-writer 
+        tw = py.io.TerminalWriter()
+        tw.sep("_", "CRASHED with signal=%d: %s" %
+               (result.signal, present.getmodpath(item)))
+        code = py.code.Code(item.obj) 
+        path, firstlineno = code.path, code.firstlineno 
+        src = py.code.Source(item.obj)
+        tw.line()
+        tw.line(str(src.indent()))
+        tw.line("[%s:%d]" %(path, firstlineno))
+        repr_run = tw.stringio.getvalue()
+        repr_path = item.repr_path()
+        trail = item._get_collector_trail()
+        testrep = repevent.ItemTestReport(trail, "failed", repr_run, repr_path)
+        #testrep.stdout = result.out
+        #testrep.stderr = result.err
     return testrep 

Modified: py/branch/event/py/test2/testing/test_runner.py
==============================================================================
--- py/branch/event/py/test2/testing/test_runner.py	(original)
+++ py/branch/event/py/test2/testing/test_runner.py	Sun Jul 20 19:37:49 2008
@@ -188,13 +188,16 @@
         return fork_runner
 
     def test_suicide(self):
-        py.test.skip("XXX")
         testrep = self.runtestfunc("""
             import os
             def testfunc():
-                os.kill(15, os.getpid())
+                os.kill(os.getpid(), 15)
+            #
         """)
-        assert testrep.signal == 15
         assert not testrep.passed
         assert testrep.failed 
+        assert testrep.repr_run.find("CRASHED") != -1
+        assert testrep.repr_run.find("signal=15") != -1
+        print testrep.repr_run
+        # assert 0
 



More information about the pytest-commit mailing list