diff options
author | Maximilian Hils <git@maximilianhils.com> | 2016-09-22 03:06:11 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-22 03:06:11 -0700 |
commit | d585236a820071938669d74b0069aab26f86ed5d (patch) | |
tree | 1c8e1a2f72130724422363b8e6a1dc78c8d72073 /test | |
parent | f59ae4a57f65fa76812c3a29965df8a4b35448e9 (diff) | |
parent | a3329c5a80b386a12575002d8324eb783428ba16 (diff) | |
download | mitmproxy-d585236a820071938669d74b0069aab26f86ed5d.tar.gz mitmproxy-d585236a820071938669d74b0069aab26f86ed5d.tar.bz2 mitmproxy-d585236a820071938669d74b0069aab26f86ed5d.zip |
Merge pull request #1567 from mhils/issue-1467
Scripts: cut traceback properly, fix #1467
Diffstat (limited to 'test')
-rw-r--r-- | test/mitmproxy/builtins/test_script.py | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/test/mitmproxy/builtins/test_script.py b/test/mitmproxy/builtins/test_script.py index 09e5bc92..24337760 100644 --- a/test/mitmproxy/builtins/test_script.py +++ b/test/mitmproxy/builtins/test_script.py @@ -1,10 +1,12 @@ -import time +import traceback -from mitmproxy.builtins import script +import sys +import time from mitmproxy import exceptions +from mitmproxy import options +from mitmproxy.builtins import script from mitmproxy.flow import master from mitmproxy.flow import state -from mitmproxy import options from .. import tutils, mastertest @@ -104,6 +106,10 @@ class TestScript(mastertest.MasterTest): f = tutils.tflow(resp=True) m.request(f) assert m.event_log[0][0] == "error" + assert len(m.event_log[0][1].splitlines()) == 6 + assert 'addonscripts/error.py", line 7, in request' in m.event_log[0][1] + assert 'addonscripts/error.py", line 3, in mkerr' in m.event_log[0][1] + assert m.event_log[0][1].endswith("ValueError: Error!\n") def test_duplicate_flow(self): s = state.State() @@ -136,6 +142,24 @@ class TestScript(mastertest.MasterTest): ] +class TestCutTraceback: + def raise_(self, i): + if i > 0: + self.raise_(i - 1) + raise RuntimeError() + + def test_simple(self): + try: + self.raise_(4) + except RuntimeError: + tb = sys.exc_info()[2] + tb_cut = script.cut_traceback(tb, "test_simple") + assert len(traceback.extract_tb(tb_cut)) == 5 + + tb_cut2 = script.cut_traceback(tb, "nonexistent") + assert len(traceback.extract_tb(tb_cut2)) == len(traceback.extract_tb(tb)) + + class TestScriptLoader(mastertest.MasterTest): def test_run_once(self): s = state.State() |