From 42ea9a2d4967be2e867fc860c96d4c4939433a78 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 11 Mar 2020 01:35:07 +0530 Subject: test case option error --- test/mitmproxy/addons/test_script.py | 11 +++++++++++ test/mitmproxy/data/addonscripts/configure.py | 27 +++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 test/mitmproxy/data/addonscripts/configure.py (limited to 'test') diff --git a/test/mitmproxy/addons/test_script.py b/test/mitmproxy/addons/test_script.py index 05472d9a..0279d1d9 100644 --- a/test/mitmproxy/addons/test_script.py +++ b/test/mitmproxy/addons/test_script.py @@ -135,6 +135,17 @@ class TestScript: assert await tctx.master.await_log("ValueError: Error!") assert await tctx.master.await_log("error.py") + + @pytest.mark.asyncio + async def test_optionexceptions(self, tdata): + with taddons.context() as tctx: + sc = script.Script( + tdata.path("mitmproxy/data/addonscripts/configure.py"), + True, + ) + tctx.master.addons.add(sc) + tctx.configure(sc) + assert await tctx.master.await_log("Options Error") @pytest.mark.asyncio async def test_addon(self, tdata): diff --git a/test/mitmproxy/data/addonscripts/configure.py b/test/mitmproxy/data/addonscripts/configure.py new file mode 100644 index 00000000..64abba6e --- /dev/null +++ b/test/mitmproxy/data/addonscripts/configure.py @@ -0,0 +1,27 @@ +import typing + +from mitmproxy import ctx +from mitmproxy import exceptions + + +class TestHeader: + def load(self, loader): + loader.add_option( + name = "testheader", + typespec = typing.Optional[int], + default = None, + help = "test header", + ) + + def configure(self, updates): + raise exceptions.OptionsError("Options Error") + + def response(self, flow): + if ctx.options.testheader is not None: + flow.response.headers["testheader"] = str(ctx.options.testheader) + + +addons = [ + TestHeader() +] + -- cgit v1.2.3