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() == "replacecontents"
def test_shlex(): """ shlex.split assumes posix=True by default, we do manual detection for windows. Test whether script paths are parsed correctly """ absfilepath = os.path.normcase(os.path.abspath(__file__)) parser = argparse.ArgumentParser() cmdline.common_options(parser) opts = parser.parse_args(args=["-s", absfilepath]) assert os.path.isfile(opts.scripts[0][0])
def test_shlex(): """ shlex.split assumes posix=True by default, we do manual detection for windows. Test whether script paths are parsed correctly """ absfilepath = os.path.normcase(os.path.abspath(__file__)) parser = argparse.ArgumentParser() cmdline.common_options(parser) opts = parser.parse_args(args=["-s",absfilepath]) assert os.path.isfile(opts.scripts[0][0])
def test_common(self): parser = optparse.OptionParser() cmdline.common_options(parser) opts, args = parser.parse_args(args=[]) assert cmdline.get_common_options(opts) opts.stickycookie_all = True opts.stickyauth_all = True v = cmdline.get_common_options(opts) assert v["stickycookie"] == ".*" assert v["stickyauth"] == ".*" opts.stickycookie_all = False opts.stickyauth_all = False opts.stickycookie_filt = "foo" opts.stickyauth_filt = "foo" v = cmdline.get_common_options(opts) assert v["stickycookie"] == "foo" assert v["stickyauth"] == "foo" opts.replace = ["/foo/bar/voing"] v = cmdline.get_common_options(opts) assert v["replacements"] == [("foo", "bar", "voing")] opts.replace = ["//"] libpry.raises( "empty replacement regex", cmdline.get_common_options, opts ) opts.replace = [] opts.replace_file = [("/foo/bar/nonexistent")] libpry.raises( "could not read replace file", cmdline.get_common_options, opts ) opts.replace_file = [("/~/bar/nonexistent")] libpry.raises( "filter pattern", cmdline.get_common_options, opts ) opts.replace_file = [("/foo/bar/./data/replace")] v = cmdline.get_common_options(opts)["replacements"] assert len(v) == 1 assert v[0][2].strip() == "replacecontents"
def test_common(self): parser = optparse.OptionParser() cmdline.common_options(parser) opts, args = parser.parse_args(args=[]) assert cmdline.get_common_options(opts) opts.stickycookie_all = True opts.stickyauth_all = True v = cmdline.get_common_options(opts) assert v["stickycookie"] == ".*" assert v["stickyauth"] == ".*" opts.stickycookie_all = False opts.stickyauth_all = False opts.stickycookie_filt = "foo" opts.stickyauth_filt = "foo" v = cmdline.get_common_options(opts) assert v["stickycookie"] == "foo" assert v["stickyauth"] == "foo"
def main(): #config stuff if(len(sys.argv) == 2): if(os.path.isfile(sys.argv[1])): sys.argv[1] = "@" + sys.argv[1] os.chdir(os.path.split(inspect.getfile( inspect.currentframe() ))[0]) defaultConfig = (len(sys.argv) == 1) if defaultConfig and os.path.exists('default.conf'): sys.argv.insert(1,'@default.conf') parser = ArgumentParser( usage = "%(prog)s [options]", fromfile_prefix_chars="@" ) ArgumentParser.convert_arg_line_to_args = hcmdline.convert_arg_line_to_args parser.add_argument('--version', action='version', version=version.NAMEVERSION) mcmdline.common_options(parser) hcmdline.fix_options(parser) #remove some mitmproxy stuff options = parser.parse_args() dumpoptions = dump.Options(dumpdir=options.dumpdir,**mcmdline.get_common_options(options)) #set up proxy server proxyconfig = mproxy.process_proxy_options(parser, options) if options.no_server: server = mproxy.DummyServer(proxyconfig) else: try: server = mproxy.ProxyServer(proxyconfig, options.port, options.addr) except mproxy.ProxyServerError, v: print >> sys.stderr, "%(name)s: %(args)s" % {"name": version.NAME, "args": v.args[0]} sys.exit(1)
def p(self, *args): parser = argparse.ArgumentParser() cmdline.common_options(parser) opts = parser.parse_args(args=args) m = MockParser() return m, proxy.process_proxy_options(m, opts)
def test_err(self): parser = argparse.ArgumentParser() cmdline.common_options(parser) opts = parser.parse_args(args=[]) tutils.raises("error starting proxy server", proxy.ProxyServer, opts, 1)
def p(self, *args): parser = tutils.MockParser() cmdline.common_options(parser) opts = parser.parse_args(args=args) return parser, process_proxy_options(parser, opts)
def test_err(self): parser = argparse.ArgumentParser() cmdline.common_options(parser) opts = parser.parse_args(args=[]) tutils.raises("error starting proxy server", ProxyServer, opts, 1)