mirror of https://github.com/fail2ban/fail2ban
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 modulepull/225/head
parent
dc05eee0f5
commit
281d310b7e
|
@ -108,7 +108,7 @@ class TestsUtilsTest(unittest.TestCase):
|
||||||
print deep_function(3)
|
print deep_function(3)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
s = tb()
|
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)
|
self.assertTrue(':' in s)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -61,11 +61,12 @@ class TraceBack(object):
|
||||||
|
|
||||||
def __call__(self):
|
def __call__(self):
|
||||||
ftb = traceback.extract_stack(limit=100)[:-2]
|
ftb = traceback.extract_stack(limit=100)[:-2]
|
||||||
entries = [[mbasename(x[0]), str(x[1])] for x in ftb]
|
entries = [[mbasename(x[0]), dirname(x[0]), str(x[1])] for x in ftb]
|
||||||
entries = [ e for e in entries
|
entries = [ [e[0], e[2]] for e in entries
|
||||||
if not e[0] in ['unittest', 'logging.__init__' ]]
|
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]]
|
entries_out = [entries[0]]
|
||||||
for entry in entries[1:]:
|
for entry in entries[1:]:
|
||||||
if entry[0] == entries_out[-1][0]:
|
if entry[0] == entries_out[-1][0]:
|
||||||
|
|
Loading…
Reference in New Issue