diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/test_dump.py | 2 | ||||
| -rw-r--r-- | test/test_flow.py | 2 | ||||
| -rw-r--r-- | test/test_proxy.py | 13 | ||||
| -rw-r--r-- | test/test_server.py | 31 | ||||
| -rw-r--r-- | test/tservers.py | 12 | 
5 files changed, 29 insertions, 31 deletions
| diff --git a/test/test_dump.py b/test/test_dump.py index a958a2ec..031a3f6a 100644 --- a/test/test_dump.py +++ b/test/test_dump.py @@ -30,7 +30,7 @@ class TestDumpMaster:          resp = tutils.tresp(req)          resp.content = content          m.handle_clientconnect(cc) -        sc = proxy.ServerConnection(m.o, req.scheme, req.host, req.port, None) +        sc = proxy.ServerConnection((req.host, req.port))          sc.reply = mock.MagicMock()          m.handle_serverconnection(sc)          m.handle_request(req) diff --git a/test/test_flow.py b/test/test_flow.py index f9198f0c..aec04152 100644 --- a/test/test_flow.py +++ b/test/test_flow.py @@ -595,7 +595,7 @@ class TestFlowMaster:          req = tutils.treq()          fm.handle_clientconnect(req.client_conn)          assert fm.scripts[0].ns["log"][-1] == "clientconnect" -        sc = proxy.ServerConnection(None, req.scheme, req.host, req.port, None) +        sc = proxy.ServerConnection((req.host, req.port))          sc.reply = controller.DummyReply()          fm.handle_serverconnection(sc)          assert fm.scripts[0].ns["log"][-1] == "serverconnect" diff --git a/test/test_proxy.py b/test/test_proxy.py index 371e5ef7..737e4a92 100644 --- a/test/test_proxy.py +++ b/test/test_proxy.py @@ -19,25 +19,26 @@ class TestServerConnection:          self.d.shutdown()      def test_simple(self): -        sc = proxy.ServerConnection(proxy.ProxyConfig(), "http", self.d.IFACE, self.d.port, "host.com") +        sc = proxy.ServerConnection((self.d.IFACE, self.d.port))          sc.connect()          r = tutils.treq()          r.path = "/p/200:da" -        sc.send(r) +        sc.send(r._assemble())          assert http.read_response(sc.rfile, r.method, 1000)          assert self.d.last_log()          r.content = flow.CONTENT_MISSING -        tutils.raises("incomplete request", sc.send, r) +        tutils.raises("incomplete request", sc.send, r._assemble()) -        sc.terminate() +        sc.finish()      def test_terminate_error(self): -        sc = proxy.ServerConnection(proxy.ProxyConfig(), "http", self.d.IFACE, self.d.port, "host.com") +        sc = proxy.ServerConnection((self.d.IFACE, self.d.port))          sc.connect()          sc.connection = mock.Mock() +        sc.connection.recv = mock.Mock(return_value=False)          sc.connection.flush = mock.Mock(side_effect=tcp.NetLibDisconnect) -        sc.terminate() +        sc.finish()  class MockParser: diff --git a/test/test_server.py b/test/test_server.py index ba152dc2..d3bf4676 100644 --- a/test/test_server.py +++ b/test/test_server.py @@ -19,8 +19,8 @@ class CommonMixin:      def test_replay(self):          assert self.pathod("304").status_code == 304 -        assert len(self.master.state.view) == 1 -        l = self.master.state.view[0] +        assert len(self.master.state.view) == (2 if self.ssl else 1) +        l = self.master.state.view[1 if self.ssl else 0]          assert l.response.code == 304          l.request.path = "/p/305"          rt = self.master.replay_request(l, block=True) @@ -41,16 +41,17 @@ class CommonMixin:          assert f.status_code == 304          l = self.master.state.view[0] -        assert l.request.client_conn.address +        assert l.client_conn.address          assert "host" in l.request.headers          assert l.response.code == 304      def test_invalid_http(self): -        t = tcp.TCPClient(("127.0.0.1", self.proxy.address.port)) +        t = tcp.TCPClient(("127.0.0.1", self.proxy.port))          t.connect()          t.wfile.write("invalid\r\n\r\n")          t.wfile.flush() -        assert "Bad Request" in t.rfile.readline() +        line = t.rfile.readline() +        assert ("Bad Request" in line) or ("Bad Gateway" in line) @@ -70,7 +71,7 @@ class TestHTTP(tservers.HTTPProxTest, CommonMixin, AppMixin):          assert "ValueError" in ret.content      def test_invalid_connect(self): -        t = tcp.TCPClient(("127.0.0.1", self.proxy.address.port)) +        t = tcp.TCPClient(("127.0.0.1", self.proxy.port))          t.connect()          t.wfile.write("CONNECT invalid\n\n")          t.wfile.flush() @@ -105,22 +106,17 @@ class TestHTTP(tservers.HTTPProxTest, CommonMixin, AppMixin):          assert p.request(req)          assert p.request(req) -        # However, if the server disconnects on our first try, it's an error. -        req = "get:'%s/p/200:b@1:d0'"%self.server.urlbase -        p = self.pathoc() -        tutils.raises("server disconnect", p.request, req) -      def test_proxy_ioerror(self):          # Tests a difficult-to-trigger condition, where an IOError is raised          # within our read loop. -        with mock.patch("libmproxy.proxy.ProxyHandler.read_request") as m: +        with mock.patch("libmproxy.protocol.HTTPRequest.from_stream") as m:              m.side_effect = IOError("error!")              tutils.raises("server disconnect", self.pathod, "304")      def test_get_connection_switching(self):          def switched(l):              for i in l: -                if "switching" in i: +                if "serverdisconnect" in i:                      return True          req = "get:'%s/p/200:b@1'"          p = self.pathoc() @@ -230,12 +226,13 @@ class TestTransparentSSL(tservers.TransparentProxTest, CommonMixin):          f = self.pathod("304", sni="testserver.com")          assert f.status_code == 304          l = self.server.last_log() -        assert self.server.last_log()["request"]["sni"] == "testserver.com" +        assert l["request"]["sni"] == "testserver.com"      def test_sslerr(self): -        p = pathoc.Pathoc("localhost", self.proxy.port) +        p = pathoc.Pathoc(("localhost", self.proxy.port))          p.connect() -        assert p.request("get:/").status_code == 400 +        r = p.request("get:/") +        assert r.status_code == 502  class TestProxy(tservers.HTTPProxTest): @@ -335,7 +332,6 @@ class TestFakeResponse(tservers.HTTPProxTest):          assert "header_response" in f.headers.keys() -  class MasterKillRequest(tservers.TestMaster):      def handle_request(self, m):          m.reply(proxy.KILL) @@ -376,6 +372,7 @@ class TestTransparentResolveError(tservers.TransparentProxTest):  class MasterIncomplete(tservers.TestMaster):      def handle_request(self, m): +        # FIXME: fails because of a ._assemble().splitlines() log statement.          resp = tutils.tresp()          resp.content = flow.CONTENT_MISSING          m.reply(resp) diff --git a/test/tservers.py b/test/tservers.py index ac95b168..f9008cd6 100644 --- a/test/tservers.py +++ b/test/tservers.py @@ -55,7 +55,7 @@ class ProxyThread(threading.Thread):      @property      def port(self): -        return self.tmaster.server.port +        return self.tmaster.server.address.port      @property      def log(self): @@ -134,13 +134,13 @@ class ProxTestBase:  class HTTPProxTest(ProxTestBase):      def pathoc_raw(self): -        return libpathod.pathoc.Pathoc("127.0.0.1", self.proxy.port) +        return libpathod.pathoc.Pathoc(("127.0.0.1", self.proxy.port))      def pathoc(self, sni=None):          """              Returns a connected Pathoc instance.          """ -        p = libpathod.pathoc.Pathoc("localhost", self.proxy.port, ssl=self.ssl, sni=sni) +        p = libpathod.pathoc.Pathoc(("localhost", self.proxy.port), ssl=self.ssl, sni=sni)          if self.ssl:              p.connect(("127.0.0.1", self.server.port))          else: @@ -161,7 +161,7 @@ class HTTPProxTest(ProxTestBase):      def app(self, page):          if self.ssl: -            p = libpathod.pathoc.Pathoc("127.0.0.1", self.proxy.port, True) +            p = libpathod.pathoc.Pathoc(("127.0.0.1", self.proxy.port), True)              print "PRE"              p.connect((APP_HOST, APP_PORT))              print "POST" @@ -211,7 +211,7 @@ class TransparentProxTest(ProxTestBase):          """              Returns a connected Pathoc instance.          """ -        p = libpathod.pathoc.Pathoc("localhost", self.proxy.port, ssl=self.ssl, sni=sni) +        p = libpathod.pathoc.Pathoc(("localhost", self.proxy.port), ssl=self.ssl, sni=sni)          p.connect()          return p @@ -232,7 +232,7 @@ class ReverseProxTest(ProxTestBase):          """              Returns a connected Pathoc instance.          """ -        p = libpathod.pathoc.Pathoc("localhost", self.proxy.port, ssl=self.ssl, sni=sni) +        p = libpathod.pathoc.Pathoc(("localhost", self.proxy.port), ssl=self.ssl, sni=sni)          p.connect()          return p | 
