]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- unit tests updated to run without any pysqlite installed; pool
authorMike Bayer <mike_mp@zzzcomputing.com>
Mon, 21 Aug 2006 20:01:32 +0000 (20:01 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Mon, 21 Aug 2006 20:01:32 +0000 (20:01 +0000)
test uses a mock DBAPI

CHANGES
test/engine/pool.py
test/engine/proxy_engine.py

diff --git a/CHANGES b/CHANGES
index 5887b631ddcb235577a5c6a9764d8c6085f4f2c4..f456647b3586984947d93855870b5c55a54ee2e5 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -25,6 +25,8 @@ with use_information_schema=True argument to create_engine
 - added natural_case argument to Table, Column, semi-experimental
 flag for use with table reflection to help with quoting rules
 [ticket:155]
+- unit tests updated to run without any pysqlite installed; pool
+test uses a mock DBAPI
 
 0.2.7
 - quoting facilities set up so that database-specific quoting can be
index fd09eb1c7335399d9e3c8cf791277b1eb4f6c576..d21f928a165eae11c9df4a4f40a51c773f971e4f 100644 (file)
@@ -1,16 +1,30 @@
+import testbase
 from testbase import PersistTest
 import unittest, sys, os, time
 
-from pysqlite2 import dbapi2 as sqlite
 import sqlalchemy.pool as pool
-import sqlalchemy.exceptions as exceptions 
+import sqlalchemy.exceptions as exceptions
+
+class MockDBAPI(object):
+    def connect(self, argument):
+        return MockConnection()
+class MockConnection(object):
+    def close(self):
+        pass
+    def cursor(self):
+        return MockCursor()
+class MockCursor(object):
+    def close(self):
+        pass
+mock_dbapi = MockDBAPI()
+         
 class PoolTest(PersistTest):
     
     def setUp(self):
         pool.clear_managers()
-        
+
     def testmanager(self):
-        manager = pool.manage(sqlite)
+        manager = pool.manage(mock_dbapi)
         
         connection = manager.connect('foo.db')
         connection2 = manager.connect('foo.db')
@@ -22,7 +36,7 @@ class PoolTest(PersistTest):
         self.assert_(connection2 is not connection3)
 
     def testbadargs(self):
-        manager = pool.manage(sqlite)
+        manager = pool.manage(mock_dbapi)
 
         try:
             connection = manager.connect(None)
@@ -30,7 +44,7 @@ class PoolTest(PersistTest):
             pass
     
     def testnonthreadlocalmanager(self):
-        manager = pool.manage(sqlite, use_threadlocal = False)
+        manager = pool.manage(mock_dbapi, use_threadlocal = False)
         
         connection = manager.connect('foo.db')
         connection2 = manager.connect('foo.db')
@@ -47,8 +61,7 @@ class PoolTest(PersistTest):
         self._do_testqueuepool(useclose=True)
 
     def _do_testqueuepool(self, useclose=False):
-
-        p = pool.QueuePool(creator = lambda: sqlite.connect('foo.db'), pool_size = 3, max_overflow = -1, use_threadlocal = False, echo = False)
+        p = pool.QueuePool(creator = lambda: mock_dbapi.connect('foo.db'), pool_size = 3, max_overflow = -1, use_threadlocal = False, echo = False)
     
         def status(pool):
             tup = (pool.size(), pool.checkedin(), pool.overflow(), pool.checkedout())
@@ -91,7 +104,7 @@ class PoolTest(PersistTest):
         self.assert_(status(p) == (3, 2, 0, 1))
     
     def test_timeout(self):
-        p = pool.QueuePool(creator = lambda: sqlite.connect('foo.db'), pool_size = 3, max_overflow = 0, use_threadlocal = False, echo = False, timeout=2)
+        p = pool.QueuePool(creator = lambda: mock_dbapi.connect('foo.db'), pool_size = 3, max_overflow = 0, use_threadlocal = False, echo = False, timeout=2)
         c1 = p.get()
         c2 = p.get()
         c3 = p.get()
@@ -110,8 +123,8 @@ class PoolTest(PersistTest):
 
     def _do_testthreadlocal(self, useclose=False):
         for p in (
-            pool.QueuePool(creator = lambda: sqlite.connect('foo.db'), pool_size = 3, max_overflow = -1, use_threadlocal = True, echo = False),
-            pool.SingletonThreadPool(creator = lambda: sqlite.connect('foo.db'), use_threadlocal = True)
+            pool.QueuePool(creator = lambda: mock_dbapi.connect('foo.db'), pool_size = 3, max_overflow = -1, use_threadlocal = True, echo = False),
+            pool.SingletonThreadPool(creator = lambda: mock_dbapi.connect('foo.db'), use_threadlocal = True)
         ):   
             c1 = p.connect()
             c2 = p.connect()
@@ -158,9 +171,6 @@ class PoolTest(PersistTest):
             
     def tearDown(self):
        pool.clear_managers()
-       for file in ('foo.db', 'bar.db'):
-            if os.access(file, os.F_OK):
-                os.remove(file)
         
         
 if __name__ == "__main__":
index 5b957b4dccf0dec07b23c0757287e176ec896759..26b738e418300ff33fbb32656d1783784143d9ff 100644 (file)
@@ -85,9 +85,16 @@ class ProxyEngineTest1(ProxyTestBase):
 class ThreadProxyTest(ProxyTestBase):
 
     def tearDownAll(self):
-        os.remove('threadtesta.db')
-        os.remove('threadtestb.db')
+        try:
+            os.remove('threadtesta.db')
+        except OSError:
+            pass
+        try:
+            os.remove('threadtestb.db')
+        except OSError:
+            pass
         
+    @testbase.supported('sqlite')
     def test_multi_thread(self):
         
         from threading import Thread