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:
Aldo Cortesi 2016-06-02 19:32:50 +12:00
parent a7522d9308
commit d8c52964c7
3 changed files with 27 additions and 11 deletions

View File

@ -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

View File

@ -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):

View File

@ -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(