aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2017-03-07 13:47:39 +1300
committerAldo Cortesi <aldo@nullcube.com>2017-03-07 13:47:39 +1300
commit79f5883c2fbe475269a02920aaaad053e797abec (patch)
tree11764a4024561fbbc2282766d37e6ee071f6cc45
parent99a6b0dbc1cc68bbcdbae1060a6f75ff4f0e9bf8 (diff)
downloadmitmproxy-79f5883c2fbe475269a02920aaaad053e797abec.tar.gz
mitmproxy-79f5883c2fbe475269a02920aaaad053e797abec.tar.bz2
mitmproxy-79f5883c2fbe475269a02920aaaad053e797abec.zip
Option spacing and coverage
-rw-r--r--mitmproxy/options.py10
-rw-r--r--mitmproxy/optmanager.py18
-rw-r--r--test/mitmproxy/test_optmanager.py24
3 files changed, 37 insertions, 15 deletions
diff --git a/mitmproxy/options.py b/mitmproxy/options.py
index 788df7e9..1b5b700a 100644
--- a/mitmproxy/options.py
+++ b/mitmproxy/options.py
@@ -170,16 +170,16 @@ class Options(optmanager.OptManager):
self.add_option(
"server_replay_ignore_params", [], Sequence[str],
"""
- Request's parameters to be ignored while searching for a saved flow
- to replay. Can be passed multiple times.
+ Request's parameters to be ignored while searching for a saved
+ flow to replay. Can be passed multiple times.
"""
)
self.add_option(
"server_replay_ignore_payload_params", [], Sequence[str],
"""
- Request's payload parameters (application/x-www-form-urlencoded or multipart/form-data) to
- be ignored while searching for a saved flow to replay.
- Can be passed multiple times.
+ Request's payload parameters (application/x-www-form-urlencoded
+ or multipart/form-data) to be ignored while searching for a
+ saved flow to replay. Can be passed multiple times.
"""
)
self.add_option(
diff --git a/mitmproxy/optmanager.py b/mitmproxy/optmanager.py
index 5b156841..beb9084c 100644
--- a/mitmproxy/optmanager.py
+++ b/mitmproxy/optmanager.py
@@ -323,30 +323,30 @@ class OptManager:
options=options
)
- def make_parser(self, parser, option, metavar=None):
- o = self._options[option]
- f = option.replace("_", "-")
+ def make_parser(self, parser, optname, metavar=None):
+ o = self._options[optname]
+ f = optname.replace("_", "-")
if o.typespec == bool:
g = parser.add_mutually_exclusive_group(required=False)
g.add_argument(
"--%s" % f,
action="store_true",
- dest=option,
+ dest=optname,
help=o.help
)
g.add_argument(
"--no-%s" % f,
action="store_false",
- dest=option,
+ dest=optname,
help=o.help
)
- parser.set_defaults(**{option: None})
+ parser.set_defaults(**{optname: None})
elif o.typespec in (int, typing.Optional[int]):
parser.add_argument(
"--%s" % f,
action="store",
type=int,
- dest=option,
+ dest=optname,
help=o.help,
metavar=metavar,
)
@@ -355,7 +355,7 @@ class OptManager:
"--%s" % f,
action="store",
type=str,
- dest=option,
+ dest=optname,
help=o.help,
metavar=metavar,
choices=o.choices
@@ -365,7 +365,7 @@ class OptManager:
"--%s" % f,
action="append",
type=str,
- dest=option,
+ dest=optname,
help=o.help,
metavar=metavar,
choices=o.choices,
diff --git a/test/mitmproxy/test_optmanager.py b/test/mitmproxy/test_optmanager.py
index 6729b155..010fc339 100644
--- a/test/mitmproxy/test_optmanager.py
+++ b/test/mitmproxy/test_optmanager.py
@@ -2,6 +2,7 @@ import copy
import os
import pytest
import typing
+import argparse
from mitmproxy import options
from mitmproxy import optmanager
@@ -284,4 +285,25 @@ def test_option():
def test_dump():
o = options.Options()
- assert optmanager.dump(o) \ No newline at end of file
+ assert optmanager.dump(o)
+
+
+class TTypes(optmanager.OptManager):
+ def __init__(self):
+ super().__init__()
+ self.add_option("str", "str", str)
+ self.add_option("bool", False, bool)
+ self.add_option("int", 0, int)
+ self.add_option("seqstr", [], typing.Sequence[str])
+ self.add_option("unknown", 0.0, float)
+
+
+def test_make_parser():
+ parser = argparse.ArgumentParser()
+ opts = TTypes()
+ opts.make_parser(parser, "str")
+ opts.make_parser(parser, "bool")
+ opts.make_parser(parser, "int")
+ opts.make_parser(parser, "seqstr")
+ with pytest.raises(ValueError):
+ opts.make_parser(parser, "unknown")