aboutsummaryrefslogtreecommitdiffstats
path: root/mitmproxy
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2017-03-07 10:28:15 +1300
committerAldo Cortesi <aldo@nullcube.com>2017-03-07 10:28:15 +1300
commitb51df9a0b1cc9da1d7381421dfac481da6205a7a (patch)
treef61be6a2e0d0ac526ff237cf42b5270c3c42378a /mitmproxy
parent2312cf6fb08e6c3f208a9bfe4af93c193dfd9ab1 (diff)
downloadmitmproxy-b51df9a0b1cc9da1d7381421dfac481da6205a7a.tar.gz
mitmproxy-b51df9a0b1cc9da1d7381421dfac481da6205a7a.tar.bz2
mitmproxy-b51df9a0b1cc9da1d7381421dfac481da6205a7a.zip
Cleanups and test coverage
Diffstat (limited to 'mitmproxy')
-rw-r--r--mitmproxy/addons/replace.py5
-rw-r--r--mitmproxy/addons/setheaders.py5
-rw-r--r--mitmproxy/optmanager.py6
-rw-r--r--mitmproxy/test/taddons.py5
-rw-r--r--mitmproxy/tools/cmdline.py4
-rw-r--r--mitmproxy/tools/dump.py6
-rw-r--r--mitmproxy/tools/main.py2
7 files changed, 11 insertions, 22 deletions
diff --git a/mitmproxy/addons/replace.py b/mitmproxy/addons/replace.py
index 34bb40c2..0d0c3aa5 100644
--- a/mitmproxy/addons/replace.py
+++ b/mitmproxy/addons/replace.py
@@ -57,10 +57,7 @@ class _ReplaceBase:
if self.optionName in updated:
lst = []
for rep in getattr(options, self.optionName):
- if isinstance(rep, str):
- fpatt, rex, s = parse_hook(rep)
- else:
- fpatt, rex, s = rep
+ fpatt, rex, s = parse_hook(rep)
flt = flowfilter.parse(fpatt)
if not flt:
diff --git a/mitmproxy/addons/setheaders.py b/mitmproxy/addons/setheaders.py
index 95cf9a09..9e60eabd 100644
--- a/mitmproxy/addons/setheaders.py
+++ b/mitmproxy/addons/setheaders.py
@@ -54,10 +54,7 @@ class SetHeaders:
if "setheaders" in updated:
self.lst = []
for shead in options.setheaders:
- if isinstance(shead, str):
- fpatt, header, value = parse_setheader(shead)
- else:
- fpatt, header, value = shead
+ fpatt, header, value = parse_setheader(shead)
flt = flowfilter.parse(fpatt)
if not flt:
diff --git a/mitmproxy/optmanager.py b/mitmproxy/optmanager.py
index 319fe622..3768b52c 100644
--- a/mitmproxy/optmanager.py
+++ b/mitmproxy/optmanager.py
@@ -110,7 +110,7 @@ class OptManager:
self._options[name] = _Option(name, default, typespec, help, choices)
@contextlib.contextmanager
- def rollback(self, updated):
+ def rollback(self, updated, reraise=False):
old = copy.deepcopy(self._options)
try:
yield
@@ -120,6 +120,8 @@ class OptManager:
# Rollback
self.__dict__["_options"] = old
self.changed.send(self, updated=updated)
+ if reraise:
+ raise e
def subscribe(self, func, opts):
"""
@@ -337,7 +339,7 @@ class OptManager:
dest=option,
help=o.help
)
- parser.set_defaults(**{option: o.default})
+ parser.set_defaults(**{option: None})
elif o.typespec in (int, typing.Optional[int]):
parser.add_argument(
"--%s" % f,
diff --git a/mitmproxy/test/taddons.py b/mitmproxy/test/taddons.py
index c3e19cc7..8d6baa12 100644
--- a/mitmproxy/test/taddons.py
+++ b/mitmproxy/test/taddons.py
@@ -61,5 +61,6 @@ class context:
Options object with the given keyword arguments, then calls the
configure method on the addon with the updated value.
"""
- self.options.update(**kwargs)
- addon.configure(self.options, kwargs.keys())
+ with self.options.rollback(kwargs.keys(), reraise=True):
+ self.options.update(**kwargs)
+ addon.configure(self.options, kwargs.keys())
diff --git a/mitmproxy/tools/cmdline.py b/mitmproxy/tools/cmdline.py
index f3c3b6d0..13577997 100644
--- a/mitmproxy/tools/cmdline.py
+++ b/mitmproxy/tools/cmdline.py
@@ -8,10 +8,6 @@ from mitmproxy import version
CONFIG_PATH = os.path.join(options.CA_DIR, "config.yaml")
-class ParseException(Exception):
- pass
-
-
def basic_options(parser, opts):
parser.add_argument(
'--version',
diff --git a/mitmproxy/tools/dump.py b/mitmproxy/tools/dump.py
index 6b862475..f64f2241 100644
--- a/mitmproxy/tools/dump.py
+++ b/mitmproxy/tools/dump.py
@@ -6,10 +6,6 @@ from mitmproxy import master
from mitmproxy.addons import dumper, termlog
-class DumpError(Exception):
- pass
-
-
class DumpMaster(master.Master):
def __init__(
@@ -38,7 +34,7 @@ class DumpMaster(master.Master):
self.load_flows_file(options.rfile)
except exceptions.FlowReadException as v:
self.add_log("Flow file corrupted.", "error")
- raise DumpError(v)
+ raise exceptions.OptionsError(v)
@controller.handler
def log(self, e):
diff --git a/mitmproxy/tools/main.py b/mitmproxy/tools/main.py
index a231c421..05877e2c 100644
--- a/mitmproxy/tools/main.py
+++ b/mitmproxy/tools/main.py
@@ -105,7 +105,7 @@ def mitmdump(args=None): # pragma: no cover
signal.signal(signal.SIGTERM, cleankill)
master.run()
- except (dump.DumpError, exceptions.OptionsError) as e:
+ except exceptions.OptionsError as e:
print("mitmdump: %s" % e, file=sys.stderr)
sys.exit(1)
except (KeyboardInterrupt, RuntimeError):