From 9c5c3c2b1adfe9e8d79742a1bd5080b3fc1fdcde Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Sun, 20 Feb 2011 09:36:13 +1300 Subject: Implement state loading that doesn't change object identity. We need this to let us load state from copied Flows returned from scripts. --- test/test_proxy.py | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) (limited to 'test/test_proxy.py') diff --git a/test/test_proxy.py b/test/test_proxy.py index cb2528fd..0b40164e 100644 --- a/test/test_proxy.py +++ b/test/test_proxy.py @@ -234,6 +234,11 @@ class uRequest(libpry.AutoTree): state = r.get_state() assert proxy.Request.from_state(state) == r + r2 = proxy.Request(c, "testing", 20, "http", "PUT", "/foo", h, "test") + assert not r == r2 + r.load_state(r2.get_state()) + assert r == r2 + class uResponse(libpry.AutoTree): def test_simple(self): @@ -256,6 +261,11 @@ class uResponse(libpry.AutoTree): state = resp.get_state() assert proxy.Response.from_state(req, state) == resp + resp2 = proxy.Response(req, 220, "foo", h.copy(), "test") + assert not resp == resp2 + resp.load_state(resp2.get_state()) + assert resp == resp2 + class uError(libpry.AutoTree): def test_getset_state(self): @@ -265,6 +275,12 @@ class uError(libpry.AutoTree): assert e.copy() + e2 = proxy.Error(None, "bar") + assert not e == e2 + e.load_state(e2.get_state()) + assert e == e2 + + class uProxyError(libpry.AutoTree): def test_simple(self): @@ -272,6 +288,18 @@ class uProxyError(libpry.AutoTree): assert repr(p) +class uClientConnect(libpry.AutoTree): + def test_state(self): + c = proxy.ClientConnect(("a", 22)) + assert proxy.ClientConnect.from_state(c.get_state()) == c + + c2 = proxy.ClientConnect(("a", 25)) + assert not c == c2 + + c.load_state(c2.get_state()) + assert c == c2 + + tests = [ uProxyError(), @@ -281,8 +309,9 @@ tests = [ u_parse_request_line(), u_parse_url(), uError(), + uClientConnect(), _TestServers(), [ uSanity(), uProxy(), - ] + ], ] -- cgit v1.2.3