mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-12-04 12:40:06 +00:00
24cf8da27e
The primary motivation here (and for all the other moving around) is to present a clean "front of house" to library users, and to migrate primary objects to the top of the module hierarchy.
114 lines
2.5 KiB
Python
114 lines
2.5 KiB
Python
import argparse
|
|
from mitmproxy.tools import cmdline
|
|
from . import tutils
|
|
|
|
|
|
def test_parse_replace_hook():
|
|
x = cmdline.parse_replace_hook("/foo/bar/voing")
|
|
assert x == ("foo", "bar", "voing")
|
|
|
|
x = cmdline.parse_replace_hook("/foo/bar/vo/ing/")
|
|
assert x == ("foo", "bar", "vo/ing/")
|
|
|
|
x = cmdline.parse_replace_hook("/bar/voing")
|
|
assert x == (".*", "bar", "voing")
|
|
|
|
tutils.raises(
|
|
cmdline.ParseException,
|
|
cmdline.parse_replace_hook,
|
|
"/foo"
|
|
)
|
|
tutils.raises(
|
|
"replacement regex",
|
|
cmdline.parse_replace_hook,
|
|
"patt/[/rep"
|
|
)
|
|
tutils.raises(
|
|
"filter pattern",
|
|
cmdline.parse_replace_hook,
|
|
"/~/foo/rep"
|
|
)
|
|
tutils.raises(
|
|
"empty clause",
|
|
cmdline.parse_replace_hook,
|
|
"//"
|
|
)
|
|
|
|
|
|
def test_parse_setheaders():
|
|
x = cmdline.parse_setheader("/foo/bar/voing")
|
|
assert x == ("foo", "bar", "voing")
|
|
|
|
|
|
def test_common():
|
|
parser = argparse.ArgumentParser()
|
|
cmdline.common_options(parser)
|
|
opts = parser.parse_args(args=[])
|
|
|
|
assert cmdline.get_common_options(opts)
|
|
|
|
opts.stickycookie_filt = "foo"
|
|
opts.stickyauth_filt = "foo"
|
|
v = cmdline.get_common_options(opts)
|
|
assert v["stickycookie"] == "foo"
|
|
assert v["stickyauth"] == "foo"
|
|
|
|
opts.setheader = ["/foo/bar/voing"]
|
|
v = cmdline.get_common_options(opts)
|
|
assert v["setheaders"] == [("foo", "bar", "voing")]
|
|
|
|
opts.setheader = ["//"]
|
|
tutils.raises(
|
|
"empty clause",
|
|
cmdline.get_common_options,
|
|
opts
|
|
)
|
|
opts.setheader = []
|
|
|
|
opts.replace = ["/foo/bar/voing"]
|
|
v = cmdline.get_common_options(opts)
|
|
assert v["replacements"] == [("foo", "bar", "voing")]
|
|
|
|
opts.replace = ["//"]
|
|
tutils.raises(
|
|
"empty clause",
|
|
cmdline.get_common_options,
|
|
opts
|
|
)
|
|
|
|
opts.replace = []
|
|
opts.replace_file = [("/foo/bar/nonexistent")]
|
|
tutils.raises(
|
|
"could not read replace file",
|
|
cmdline.get_common_options,
|
|
opts
|
|
)
|
|
|
|
opts.replace_file = [("/~/bar/nonexistent")]
|
|
tutils.raises(
|
|
"filter pattern",
|
|
cmdline.get_common_options,
|
|
opts
|
|
)
|
|
|
|
p = tutils.test_data.path("data/replace")
|
|
opts.replace_file = [("/foo/bar/%s" % p)]
|
|
v = cmdline.get_common_options(opts)["replacements"]
|
|
assert len(v) == 1
|
|
assert v[0][2].strip() == b"replacecontents"
|
|
|
|
|
|
def test_mitmproxy():
|
|
ap = cmdline.mitmproxy()
|
|
assert ap
|
|
|
|
|
|
def test_mitmdump():
|
|
ap = cmdline.mitmdump()
|
|
assert ap
|
|
|
|
|
|
def test_mitmweb():
|
|
ap = cmdline.mitmweb()
|
|
assert ap
|