Example #1
0
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"
Example #2
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"
Example #3
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"
Example #4
0
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)
Example #5
0
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)