mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-11-27 02:24:18 +00:00
Split pathod and pathoc daemon test suites out.
This commit is contained in:
parent
a68b4498b8
commit
8f148b6b14
@ -22,6 +22,9 @@ class Pathoc(tcp.TCPClient):
|
||||
raise PathocError(v)
|
||||
|
||||
def request(self, spec):
|
||||
"""
|
||||
Return an (httpversion, code, msg, headers, content) tuple.
|
||||
"""
|
||||
r = rparse.parse_request({}, spec)
|
||||
r.serve(self.wfile)
|
||||
self.wfile.flush()
|
||||
|
27
test/test_pathoc.py
Normal file
27
test/test_pathoc.py
Normal file
@ -0,0 +1,27 @@
|
||||
import json
|
||||
from libpathod import pathoc, test, version
|
||||
import tutils
|
||||
|
||||
|
||||
|
||||
class TestDaemon:
|
||||
@classmethod
|
||||
def setUpAll(self):
|
||||
self.d = test.Daemon(
|
||||
staticdir=tutils.test_data.path("data"),
|
||||
anchors=[("/anchor/.*", "202")]
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def tearDownAll(self):
|
||||
self.d.shutdown()
|
||||
|
||||
def setUp(self):
|
||||
self.d.clear_log()
|
||||
|
||||
def test_info(self):
|
||||
c = pathoc.Pathoc("127.0.0.1", self.d.port)
|
||||
c.connect()
|
||||
_, _, _, _, content = c.request("get:/api/info")
|
||||
assert tuple(json.loads(content)["version"]) == version.IVERSION
|
||||
|
@ -1,4 +1,5 @@
|
||||
from libpathod import pathod
|
||||
import requests
|
||||
from libpathod import pathod, test, version
|
||||
import tutils
|
||||
|
||||
class _TestApplication:
|
||||
@ -36,3 +37,51 @@ class TestPathod:
|
||||
for i in range(p.LOGBUF + 1):
|
||||
p.add_log(dict(s="foo"))
|
||||
assert len(p.get_log()) <= p.LOGBUF
|
||||
|
||||
|
||||
class TestDaemon:
|
||||
@classmethod
|
||||
def setUpAll(self):
|
||||
self.d = test.Daemon(
|
||||
staticdir=tutils.test_data.path("data"),
|
||||
anchors=[("/anchor/.*", "202")]
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def tearDownAll(self):
|
||||
self.d.shutdown()
|
||||
|
||||
def setUp(self):
|
||||
self.d.clear_log()
|
||||
|
||||
def getpath(self, path):
|
||||
return requests.get("http://localhost:%s/%s"%(self.d.port, path))
|
||||
|
||||
def get(self, spec):
|
||||
return requests.get("http://localhost:%s/p/%s"%(self.d.port, spec))
|
||||
|
||||
def test_info(self):
|
||||
assert tuple(self.d.info()["version"]) == version.IVERSION
|
||||
|
||||
def test_logs(self):
|
||||
rsp = self.get("202")
|
||||
assert len(self.d.log()) == 1
|
||||
assert self.d.clear_log()
|
||||
assert len(self.d.log()) == 0
|
||||
|
||||
def test_disconnect(self):
|
||||
rsp = self.get("202:b@100k:d200")
|
||||
assert len(rsp.content) < 200
|
||||
|
||||
def test_parserr(self):
|
||||
rsp = self.get("400:msg,b:")
|
||||
assert rsp.status_code == 800
|
||||
|
||||
def test_static(self):
|
||||
rsp = self.get("200:b<file")
|
||||
assert rsp.status_code == 200
|
||||
assert rsp.content.strip() == "testfile"
|
||||
|
||||
def test_anchor(self):
|
||||
rsp = self.getpath("anchor/foo")
|
||||
assert rsp.status_code == 202
|
||||
|
@ -1,6 +1,6 @@
|
||||
import time, logging
|
||||
import requests
|
||||
from libpathod import test, version, utils
|
||||
from libpathod import test, utils
|
||||
import tutils
|
||||
|
||||
logging.disable(logging.CRITICAL)
|
||||
@ -35,49 +35,3 @@ class TestDaemonManual:
|
||||
tutils.raises(requests.ConnectionError, requests.get, "http://localhost:%s/p/202"%d.port)
|
||||
|
||||
|
||||
class TestDaemon:
|
||||
@classmethod
|
||||
def setUpAll(self):
|
||||
self.d = test.Daemon(
|
||||
staticdir=tutils.test_data.path("data"),
|
||||
anchors=[("/anchor/.*", "202")]
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def tearDownAll(self):
|
||||
self.d.shutdown()
|
||||
|
||||
def setUp(self):
|
||||
self.d.clear_log()
|
||||
|
||||
def getpath(self, path):
|
||||
return requests.get("http://localhost:%s/%s"%(self.d.port, path))
|
||||
|
||||
def get(self, spec):
|
||||
return requests.get("http://localhost:%s/p/%s"%(self.d.port, spec))
|
||||
|
||||
def test_info(self):
|
||||
assert tuple(self.d.info()["version"]) == version.IVERSION
|
||||
|
||||
def test_logs(self):
|
||||
rsp = self.get("202")
|
||||
assert len(self.d.log()) == 1
|
||||
assert self.d.clear_log()
|
||||
assert len(self.d.log()) == 0
|
||||
|
||||
def test_disconnect(self):
|
||||
rsp = self.get("202:b@100k:d200")
|
||||
assert len(rsp.content) < 200
|
||||
|
||||
def test_parserr(self):
|
||||
rsp = self.get("400:msg,b:")
|
||||
assert rsp.status_code == 800
|
||||
|
||||
def test_static(self):
|
||||
rsp = self.get("200:b<file")
|
||||
assert rsp.status_code == 200
|
||||
assert rsp.content.strip() == "testfile"
|
||||
|
||||
def test_anchor(self):
|
||||
rsp = self.getpath("anchor/foo")
|
||||
assert rsp.status_code == 202
|
||||
|
Loading…
Reference in New Issue
Block a user