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
 
[email protected]()
+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)?',





Reply via email to