mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-11-23 00:01:36 +00:00
Reimplement test retrievals on pathoc and ditch requests
Requests uses urllib3, which has a connection pool that's not easy to disable (https://github.com/shazow/urllib3/issues/383).
This commit is contained in:
parent
a7522d9308
commit
d8c52964c7
@ -11,11 +11,11 @@ class TestApp(tutils.DaemonTests):
|
||||
|
||||
def test_about(self):
|
||||
r = self.getpath("/about")
|
||||
assert r.ok
|
||||
assert r.status_code == 200
|
||||
|
||||
def test_download(self):
|
||||
r = self.getpath("/download")
|
||||
assert r.ok
|
||||
assert r.status_code == 200
|
||||
|
||||
def test_docs(self):
|
||||
assert self.getpath("/docs/pathod").status_code == 200
|
||||
|
@ -6,10 +6,6 @@ from netlib.exceptions import HttpException, TlsException
|
||||
import tutils
|
||||
|
||||
|
||||
import requests.packages.urllib3
|
||||
requests.packages.urllib3.disable_warnings()
|
||||
|
||||
|
||||
class TestPathod(object):
|
||||
|
||||
def test_logging(self):
|
||||
@ -150,8 +146,7 @@ class CommonTests(tutils.DaemonTests):
|
||||
assert len(self.d.log()) == 0
|
||||
|
||||
def test_disconnect(self):
|
||||
rsp = self.get("202:b@100k:d200")
|
||||
assert len(rsp.content) < 200
|
||||
tutils.raises("unexpected eof", self.get, "202:b@100k:d200")
|
||||
|
||||
def test_parserr(self):
|
||||
rsp = self.get("400:msg,b:")
|
||||
@ -163,7 +158,7 @@ class CommonTests(tutils.DaemonTests):
|
||||
assert rsp.content.strip() == "testfile"
|
||||
|
||||
def test_anchor(self):
|
||||
rsp = self.getpath("anchor/foo")
|
||||
rsp = self.getpath("/anchor/foo")
|
||||
assert rsp.status_code == 202
|
||||
|
||||
def test_invalid_first_line(self):
|
||||
|
@ -3,6 +3,7 @@ import re
|
||||
import shutil
|
||||
import requests
|
||||
from six.moves import cStringIO as StringIO
|
||||
import urllib
|
||||
|
||||
from netlib import tcp
|
||||
from netlib import utils
|
||||
@ -66,7 +67,7 @@ class DaemonTests(object):
|
||||
if not (self.noweb or self.noapi):
|
||||
self.d.clear_log()
|
||||
|
||||
def getpath(self, path, params=None):
|
||||
def _getpath(self, path, params=None):
|
||||
scheme = "https" if self.ssl else "http"
|
||||
resp = requests.get(
|
||||
"%s://localhost:%s/%s" % (
|
||||
@ -79,8 +80,28 @@ class DaemonTests(object):
|
||||
)
|
||||
return resp
|
||||
|
||||
def getpath(self, path, params=None):
|
||||
logfp = StringIO()
|
||||
c = pathoc.Pathoc(
|
||||
("localhost", self.d.port),
|
||||
ssl=self.ssl,
|
||||
fp=logfp,
|
||||
)
|
||||
c.connect()
|
||||
if params:
|
||||
path = path + "?" + urllib.urlencode(params)
|
||||
resp = c.request("get:%s" % path)
|
||||
return resp
|
||||
|
||||
def get(self, spec):
|
||||
resp = requests.get(self.d.p(spec), verify=False)
|
||||
logfp = StringIO()
|
||||
c = pathoc.Pathoc(
|
||||
("localhost", self.d.port),
|
||||
ssl=self.ssl,
|
||||
fp=logfp,
|
||||
)
|
||||
c.connect()
|
||||
resp = c.request("get:/p/%s" % urllib.quote(spec).encode("string_escape"))
|
||||
return resp
|
||||
|
||||
def pathoc(
|
||||
|
Loading…
Reference in New Issue
Block a user