public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] gentoo-x86 commit in dev-python/dugong/files: 3.3-test-timeout.patch
@ 2014-08-20  7:57 Ian Delaney (idella4)
  0 siblings, 0 replies; only message in thread
From: Ian Delaney (idella4) @ 2014-08-20  7:57 UTC (permalink / raw
  To: gentoo-commits

idella4     14/08/20 07:57:24

  Added:                3.3-test-timeout.patch
  Log:
  update patches for test phase
  
  (Portage version: 2.2.10/cvs/Linux x86_64, signed Manifest commit with key 0xB8072B0D)

Revision  Changes    Path
1.1                  dev-python/dugong/files/3.3-test-timeout.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-python/dugong/files/3.3-test-timeout.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-python/dugong/files/3.3-test-timeout.patch?rev=1.1&content-type=text/plain

Index: 3.3-test-timeout.patch
===================================================================
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)?',






^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2014-08-20  7:57 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-20  7:57 [gentoo-commits] gentoo-x86 commit in dev-python/dugong/files: 3.3-test-timeout.patch Ian Delaney (idella4)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox