From 9695377b283f97c872e4ddbb27060883c3c32980 Mon Sep 17 00:00:00 2001 From: Marcelo Glezer Date: Mon, 5 Jan 2015 18:12:38 -0300 Subject: [PATCH] first steps in scenario support --- libmproxy/cmdline.py | 4 ++-- libmproxy/dump.py | 10 ++++++---- test/test_dump.py | 6 +++--- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/libmproxy/cmdline.py b/libmproxy/cmdline.py index 185944da4..e45cc54c2 100644 --- a/libmproxy/cmdline.py +++ b/libmproxy/cmdline.py @@ -418,14 +418,14 @@ def common_options(parser): group = parser.add_argument_group("Client Replay") group.add_argument( "-c", "--client-replay", - action="store", dest="client_replay", default=None, metavar="PATH", + action="append", dest="client_replay", default=None, metavar="PATH", help="Replay client requests from a saved file." ) group = parser.add_argument_group("Server Replay") group.add_argument( "-S", "--server-replay", - action="store", dest="server_replay", default=None, metavar="PATH", + action="append", dest="server_replay", default=None, metavar="PATH", help="Replay server responses from a saved file." ) group.add_argument( diff --git a/libmproxy/dump.py b/libmproxy/dump.py index 91ccb42b4..c4a70a146 100644 --- a/libmproxy/dump.py +++ b/libmproxy/dump.py @@ -143,11 +143,13 @@ class DumpMaster(flow.FlowMaster): if self.o.app: self.start_app(self.o.app_host, self.o.app_port) - def _readflow(self, path): - path = os.path.expanduser(path) + def _readflow(self, paths): try: - f = file(path, "rb") - flows = list(flow.FlowReader(f).stream()) + flows = [] + for path in paths: + path = os.path.expanduser(path) + f = file(path, "rb") + flows.extend(list(flow.FlowReader(f).stream())) except (IOError, flow.FlowReadError), v: raise DumpError(v.strerror) return flows diff --git a/test/test_dump.py b/test/test_dump.py index 927b5b505..69df912f5 100644 --- a/test/test_dump.py +++ b/test/test_dump.py @@ -82,17 +82,17 @@ class TestDumpMaster: p = os.path.join(t, "rep") self._flowfile(p) - o = dump.Options(server_replay=p, kill=True) + o = dump.Options(server_replay=[p], kill=True) m = dump.DumpMaster(None, o, outfile=cs) self._cycle(m, "content") self._cycle(m, "content") - o = dump.Options(server_replay=p, kill=False) + o = dump.Options(server_replay=[p], kill=False) m = dump.DumpMaster(None, o, outfile=cs) self._cycle(m, "nonexistent") - o = dump.Options(client_replay=p, kill=False) + o = dump.Options(client_replay=[p], kill=False) m = dump.DumpMaster(None, o, outfile=cs) def test_read(self):