Beispiel #1
0
    def test_all(self):
        s = flow.State()
        fm = flow.FlowMaster(None, s)
        fm.anticache = True
        fm.anticomp = True
        req = tutils.treq()
        fm.handle_clientconnect(req.client_conn)

        f = fm.handle_request(req)
        assert s.flow_count() == 1

        resp = tutils.tresp(req)
        fm.handle_response(resp)
        assert s.flow_count() == 1

        rx = tutils.tresp()
        assert not fm.handle_response(rx)

        dc = flow.ClientDisconnect(req.client_conn)
        req.client_conn.requestcount = 1
        fm.handle_clientdisconnect(dc)

        err = flow.Error(f.request, "msg")
        fm.handle_error(err)

        fm.load_script("scripts/a.py")
        fm.shutdown()
Beispiel #2
0
 def test_script(self):
     s = flow.State()
     fm = flow.FlowMaster(None, s)
     assert not fm.load_script([tutils.test_data.path("scripts/all.py")])
     req = tutils.treq()
     fm.handle_clientconnect(req.client_conn)
     assert fm.scripts[0].ns["log"][-1] == "clientconnect"
     f = fm.handle_request(req)
     assert fm.scripts[0].ns["log"][-1] == "request"
     resp = tutils.tresp(req)
     fm.handle_response(resp)
     assert fm.scripts[0].ns["log"][-1] == "response"
     #load second script
     assert not fm.load_script([tutils.test_data.path("scripts/all.py")])
     assert len(fm.scripts) == 2
     dc = flow.ClientDisconnect(req.client_conn)
     dc.reply = controller.DummyReply()
     fm.handle_clientdisconnect(dc)
     assert fm.scripts[0].ns["log"][-1] == "clientdisconnect"
     assert fm.scripts[1].ns["log"][-1] == "clientdisconnect"
     #unload first script
     fm.unload_script(fm.scripts[0])
     assert len(fm.scripts) == 1
     err = flow.Error(f.request, "msg")
     err.reply = controller.DummyReply()
     fm.handle_error(err)
     assert fm.scripts[0].ns["log"][-1] == "error"
Beispiel #3
0
 def _cycle(self, m, content):
     req = tutils.treq()
     req.content = content
     cc = req.client_conn
     cc.connection_error = "error"
     resp = tutils.tresp(req)
     resp.content = content
     m.handle_clientconnect(cc)
     m.handle_request(req)
     m.handle_response(resp)
     m.handle_clientdisconnect(flow.ClientDisconnect(cc))
Beispiel #4
0
 def _cycle(self, m, content):
     req = tutils.treq()
     req.content = content
     l = proxy.Log("connect")
     m.handle_log(l)
     cc = req.client_conn
     cc.connection_error = "error"
     resp = tutils.tresp(req)
     resp.content = content
     m.handle_clientconnect(cc)
     m.handle_request(req)
     f = m.handle_response(resp)
     m.handle_clientdisconnect(flow.ClientDisconnect(cc))
     return f
Beispiel #5
0
 def test_script(self):
     s = flow.State()
     fm = flow.FlowMaster(None, s)
     assert not fm.load_script("scripts/all.py")
     req = tutils.treq()
     fm.handle_clientconnect(req.client_conn)
     assert fm.script.ns["log"][-1] == "clientconnect"
     f = fm.handle_request(req)
     assert fm.script.ns["log"][-1] == "request"
     resp = tutils.tresp(req)
     fm.handle_response(resp)
     assert fm.script.ns["log"][-1] == "response"
     dc = flow.ClientDisconnect(req.client_conn)
     fm.handle_clientdisconnect(dc)
     assert fm.script.ns["log"][-1] == "clientdisconnect"
     err = flow.Error(f.request, "msg")
     fm.handle_error(err)
     assert fm.script.ns["log"][-1] == "error"