diff options
Diffstat (limited to 'dev-python')
-rw-r--r-- | dev-python/dugong/ChangeLog | 6 | ||||
-rw-r--r-- | dev-python/dugong/dugong-3.3.ebuild | 7 | ||||
-rw-r--r-- | dev-python/dugong/files/3.3-test-timeout.patch | 128 |
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)?', + |