summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/dugong/ChangeLog6
-rw-r--r--dev-python/dugong/dugong-3.3.ebuild7
-rw-r--r--dev-python/dugong/files/3.3-test-timeout.patch128
3 files changed, 136 insertions, 5 deletions
diff --git a/dev-python/dugong/ChangeLog b/dev-python/dugong/ChangeLog
index 6cb063ae0fe8..0077f3233cd1 100644
--- a/dev-python/dugong/ChangeLog
+++ b/dev-python/dugong/ChangeLog
@@ -1,6 +1,10 @@
# ChangeLog for dev-python/dugong
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-python/dugong/ChangeLog,v 1.7 2014/08/18 06:36:50 idella4 Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-python/dugong/ChangeLog,v 1.8 2014/08/20 07:57:24 idella4 Exp $
+
+ 20 Aug 2014; Ian Delaney <idella4@gentoo.org> +files/3.3-test-timeout.patch,
+ dugong-3.3.ebuild:
+ update patches for test phase
*dugong-3.3 (18 Aug 2014)
diff --git a/dev-python/dugong/dugong-3.3.ebuild b/dev-python/dugong/dugong-3.3.ebuild
index 04185e63c1bd..0c526e18e9c0 100644
--- a/dev-python/dugong/dugong-3.3.ebuild
+++ b/dev-python/dugong/dugong-3.3.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-python/dugong/dugong-3.3.ebuild,v 1.1 2014/08/18 06:36:50 idella4 Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-python/dugong/dugong-3.3.ebuild,v 1.2 2014/08/20 07:57:24 idella4 Exp $
EAPI=5
PYTHON_COMPAT=( python3_{3,4} )
@@ -19,9 +19,8 @@ IUSE="doc examples test"
DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
-PATCHES=( "${FILESDIR}"/3.2-extract_links.patch
- "${FILESDIR}"/3.2-timeout.patch
- "${FILESDIR}"/3.2-aborted_write.patch )
+PATCHES=( "${FILESDIR}"/3.3-test-timeout.patch
+ "${FILESDIR}"/3.2-extract_links.patch )
python_test() {
# https://bitbucket.org/nikratio/python-dugong/issue/12
diff --git a/dev-python/dugong/files/3.3-test-timeout.patch b/dev-python/dugong/files/3.3-test-timeout.patch
new file mode 100644
index 000000000000..afd391207976
--- /dev/null
+++ b/dev-python/dugong/files/3.3-test-timeout.patch
@@ -0,0 +1,128 @@
+https://bitbucket.org/nikratio/python-dugong/commits/0e9d67700bc8
+diff --git a/test/test_dugong.py b/test/test_dugong.py
+--- a/test/test_dugong.py
++++ b/test/test_dugong.py
+@@ -99,6 +99,12 @@
+ request.addfinalizer(conn.disconnect)
+ return conn
+
++@pytest.fixture()
++def random_fh(request):
++ fh = open('/dev/urandom', 'rb')
++ request.addfinalizer(fh.close)
++ return fh
++
+ def check_http_connection():
+ '''Skip test if we can't connect to ssl test server'''
+
+@@ -170,12 +176,12 @@
+ conn.get_ssl_cipher()
+ conn.get_ssl_peercert()
+
+-def test_blocking_send(conn):
++def test_blocking_send(conn, random_fh):
+ # Send requests until we block because all TCP buffers are full
+
+- path = '/send_100_1200-byte_chunks'
++ path = '/send_102400_random_bytes'
+ for count in itertools.count():
+- crt = conn.co_send_request('GET', path, body=DUMMY_DATA[:8192])
++ crt = conn.co_send_request('GET', path, body=random_fh.read(8192))
+ flag = False
+ for io_req in crt:
+ if not io_req.poll(1):
+@@ -539,7 +545,7 @@
+ conn.read_response()
+ conn.readall()
+
+-def test_aborted_write1(conn, monkeypatch):
++def test_aborted_write1(conn, monkeypatch, random_fh):
+ BUFSIZE = 64*1024
+
+ # Monkeypatch request handler
+@@ -562,14 +568,14 @@
+ # Try to write data
+ with pytest.raises(ConnectionClosed):
+ for _ in range(50):
+- conn.write(b'f' * BUFSIZE)
++ conn.write(random_fh.read(BUFSIZE))
+
+ # Nevertheless, try to read response
+ resp = conn.read_response()
+ assert resp.status == 401
+ assert resp.reason == 'Please stop!'
+
+-def test_aborted_write2(conn, monkeypatch):
++def test_aborted_write2(conn, monkeypatch, random_fh):
+ BUFSIZE = 64*1024
+
+ # Monkeypatch request handler
+@@ -590,7 +596,7 @@
+ # Try to write data
+ with pytest.raises(ConnectionClosed):
+ for _ in range(50):
+- conn.write(b'f' * BUFSIZE)
++ conn.write(random_fh.read(BUFSIZE))
+
+ # Nevertheless, try to read response
+ assert_raises(ConnectionClosed, conn.read_response)
+@@ -716,12 +722,13 @@
+ assert conn.read(50) == b'x' * 25
+ assert_raises(dugong.ConnectionTimedOut, conn.read, 50)
+
+-def test_send_timeout(conn, monkeypatch):
++def test_send_timeout(conn, monkeypatch, random_fh):
+ conn.timeout = 1
+
+ def do_PUT(self):
+ # Read just a tiny bit
+ self.rfile.read(256)
++ time.sleep(2*conn.timeout)
+ monkeypatch.setattr(MockRequestHandler, 'do_PUT', do_PUT)
+
+ # We don't know how much data can be buffered, so we
+@@ -730,7 +737,7 @@
+ conn.send_request('PUT', '/recv_something', body=BodyFollowing(len_))
+ with pytest.raises(dugong.ConnectionTimedOut):
+ while len_ > 0:
+- conn.write(b'x' * min(len_, 16*1024))
++ conn.write(random_fh.read(min(len_, 16*1024)))
+
+
+ DUMMY_DATA = ','.join(str(x) for x in range(10000)).encode()
+@@ -743,6 +750,14 @@
+ def log_message(self, format, *args):
+ pass
+
++ def setup(self):
++ super().setup()
++ self.random_fh = open('/dev/urandom', 'rb')
++
++ def finish(self):
++ super().finish()
++ self.random_fh.close()
++
+ def handle_expect_100(self):
+ if self.handle_errors():
+ return
+@@ -782,14 +797,17 @@
+ self.wfile.close()
+ return
+
+- hit = re.match(r'^/send_([0-9]+)_bytes', self.path)
++ hit = re.match(r'^/send_([0-9]+)_(random_)?bytes', self.path)
+ if hit:
+ len_ = int(hit.group(1))
+ self.send_response(200)
+ self.send_header("Content-Type", 'application/octet-stream')
+ self.send_header("Content-Length", str(len_))
+ self.end_headers()
+- self.wfile.write(DUMMY_DATA[:len_])
++ if hit.group(2):
++ self.wfile.write(self.random_fh.read(len_))
++ else:
++ self.wfile.write(DUMMY_DATA[:len_])
+ return
+
+ hit = re.match(r'^/send_([0-9]+)_([0-9]+)-byte_chunks(?:_delay_([0-9]+)_ms)?',
+