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): def test_about(self):
r = self.getpath("/about") r = self.getpath("/about")
assert r.ok assert r.status_code == 200
def test_download(self): def test_download(self):
r = self.getpath("/download") r = self.getpath("/download")
assert r.ok assert r.status_code == 200
def test_docs(self): def test_docs(self):
assert self.getpath("/docs/pathod").status_code == 200 assert self.getpath("/docs/pathod").status_code == 200

View File

@ -6,10 +6,6 @@ from netlib.exceptions import HttpException, TlsException
import tutils import tutils
import requests.packages.urllib3
requests.packages.urllib3.disable_warnings()
class TestPathod(object): class TestPathod(object):
def test_logging(self): def test_logging(self):
@ -150,8 +146,7 @@ class CommonTests(tutils.DaemonTests):
assert len(self.d.log()) == 0 assert len(self.d.log()) == 0
def test_disconnect(self): def test_disconnect(self):
rsp = self.get("202:b@100k:d200") tutils.raises("unexpected eof", self.get, "202:b@100k:d200")
assert len(rsp.content) < 200
def test_parserr(self): def test_parserr(self):
rsp = self.get("400:msg,b:") rsp = self.get("400:msg,b:")
@ -163,7 +158,7 @@ class CommonTests(tutils.DaemonTests):
assert rsp.content.strip() == "testfile" assert rsp.content.strip() == "testfile"
def test_anchor(self): def test_anchor(self):
rsp = self.getpath("anchor/foo") rsp = self.getpath("/anchor/foo")
assert rsp.status_code == 202 assert rsp.status_code == 202
def test_invalid_first_line(self): def test_invalid_first_line(self):

View File

@ -3,6 +3,7 @@ import re
import shutil import shutil
import requests import requests
from six.moves import cStringIO as StringIO from six.moves import cStringIO as StringIO
import urllib
from netlib import tcp from netlib import tcp
from netlib import utils from netlib import utils
@ -66,7 +67,7 @@ class DaemonTests(object):
if not (self.noweb or self.noapi): if not (self.noweb or self.noapi):
self.d.clear_log() self.d.clear_log()
def getpath(self, path, params=None): def _getpath(self, path, params=None):
scheme = "https" if self.ssl else "http" scheme = "https" if self.ssl else "http"
resp = requests.get( resp = requests.get(
"%s://localhost:%s/%s" % ( "%s://localhost:%s/%s" % (
@ -79,8 +80,28 @@ class DaemonTests(object):
) )
return resp 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): 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 return resp
def pathoc( def pathoc(