From 281d310b7eb45bca49c0a57a32a6c430f6bfddac Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Fri, 10 May 2013 00:02:49 -0400 Subject: [PATCH] ENH: actually tune up TraceBack to determine "unittest" portions of the stack across all python releases before for 2.7 it would spit out "suite" and other components of unittest module --- testcases/misctestcase.py | 2 +- testcases/utils.py | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/testcases/misctestcase.py b/testcases/misctestcase.py index 89be2b17..c9449407 100644 --- a/testcases/misctestcase.py +++ b/testcases/misctestcase.py @@ -108,7 +108,7 @@ class TestsUtilsTest(unittest.TestCase): print deep_function(3) except ValueError: s = tb() - self.assertTrue('>' in s) + self.assertFalse('>' in s) # There is only "fail2ban-testcases" in this case, no true traceback self.assertTrue(':' in s) diff --git a/testcases/utils.py b/testcases/utils.py index 6b894193..87aab915 100644 --- a/testcases/utils.py +++ b/testcases/utils.py @@ -61,11 +61,12 @@ class TraceBack(object): def __call__(self): ftb = traceback.extract_stack(limit=100)[:-2] - entries = [[mbasename(x[0]), str(x[1])] for x in ftb] - entries = [ e for e in entries - if not e[0] in ['unittest', 'logging.__init__' ]] + entries = [[mbasename(x[0]), dirname(x[0]), str(x[1])] for x in ftb] + entries = [ [e[0], e[2]] for e in entries + if not (e[0] in ['unittest', 'logging.__init__'] + or e[1].endswith('/unittest'))] - # lets make it more consize + # lets make it more concise entries_out = [entries[0]] for entry in entries[1:]: if entry[0] == entries_out[-1][0]: