]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- use a mock here, do away with timing problems for good. need to do this
authorMike Bayer <mike_mp@zzzcomputing.com>
Thu, 2 Jun 2016 22:40:46 +0000 (18:40 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Fri, 3 Jun 2016 15:24:17 +0000 (11:24 -0400)
for the rest of the timing tests

Change-Id: I06a815b1500222126a4dbc2a9a5da3ef7847e321
(cherry picked from commit 74ca7f627ea8f31a8312f965d5249ce1f701d627)

test/engine/test_pool.py

index 8551e1fcb4613413693c3444e744a7a612efd6c9..b24ba1997a8fa190d3bca27fcbc6e41a166c8442 100644 (file)
@@ -1373,18 +1373,24 @@ class QueuePoolTest(PoolTestBase):
         self.assert_(p.checkedout() == 0)
 
     def test_recycle(self):
-        p = self._queuepool_fixture(pool_size=1,
-                           max_overflow=0,
-                           recycle=3)
-        c1 = p.connect()
-        c_id = id(c1.connection)
-        c1.close()
-        c2 = p.connect()
-        assert id(c2.connection) == c_id
-        c2.close()
-        time.sleep(4)
-        c3 = p.connect()
-        assert id(c3.connection) != c_id
+        with patch("sqlalchemy.pool.time.time") as mock:
+            mock.return_value = 10000
+
+            p = self._queuepool_fixture(
+                pool_size=1,
+                max_overflow=0,
+                recycle=30)
+            c1 = p.connect()
+            c_id = id(c1.connection)
+            c1.close()
+            mock.return_value = 10001
+            c2 = p.connect()
+            assert id(c2.connection) == c_id
+            c2.close()
+
+            mock.return_value = 10035
+            c3 = p.connect()
+            assert id(c3.connection) != c_id
 
     @testing.requires.timing_intensive
     def test_recycle_on_invalidate(self):