From a6c518e68c2aeb264b4aa87d0308670f5a8e3136 Mon Sep 17 00:00:00 2001 From: Ronny Pfannschmidt Date: Sat, 5 Mar 2011 17:49:51 +0100 Subject: [PATCH] unittest plugin: prune __unittest marked modules from traces --- _pytest/unittest.py | 4 ++++ testing/test_unittest.py | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/_pytest/unittest.py b/_pytest/unittest.py index 5131a93e3..3bcf91e90 100644 --- a/_pytest/unittest.py +++ b/_pytest/unittest.py @@ -102,6 +102,10 @@ class TestCaseFunction(pytest.Function): def runtest(self): self._testcase(result=self) + def _prunetraceback(self, excinfo): + pytest.Function._prunetraceback(self, excinfo) + excinfo.traceback = excinfo.traceback.filter(lambda x:not x.frame.f_globals.get('__unittest')) + @pytest.mark.tryfirst def pytest_runtest_makereport(item, call): if isinstance(item, TestCaseFunction): diff --git a/testing/test_unittest.py b/testing/test_unittest.py index d32dc67ee..a0bfe5c78 100644 --- a/testing/test_unittest.py +++ b/testing/test_unittest.py @@ -396,3 +396,15 @@ def test_djangolike_testcase(testdir): "*tearDown()*", "*_post_teardown()*", ]) + + +def test_unittest_not_shown_in_traceback(testdir): + testdir.makepyfile(""" + import unittest + class t(unittest.TestCase): + def test_hello(self): + x = 3 + self.assertEquals(x, 4) + """) + res = testdir.runpytest() + assert "failUnlessEqual" not in res.stdout.str()