]> 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>
Thu, 2 Jun 2016 22:40:46 +0000 (18:40 -0400)
for the rest of the timing tests

Change-Id: I06a815b1500222126a4dbc2a9a5da3ef7847e321

test/engine/test_pool.py

index 4547984ab638e08a5deb903e67a7e036e9185493..4f804f8b2307a524168981ee298f9727c01f7aa8 100644 (file)
@@ -1433,18 +1433,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):