mirror of
https://github.com/zhigang1992/mitmproxy.git
synced 2026-01-12 17:32:27 +08:00
Option spacing and coverage
This commit is contained in:
@@ -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(
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
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")
|
||||
|
||||
Reference in New Issue
Block a user