summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2006-08-21 20:01:32 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2006-08-21 20:01:32 +0000
commit43d3b773072b07fc19f6eebcd121db99b6370e00 (patch)
tree0ca6f75cfe577a50198c368bd488a91639797e59
parent4ca1de17832b49423dd448f7becc600a459e8cbf (diff)
downloadsqlalchemy-43d3b773072b07fc19f6eebcd121db99b6370e00.tar.gz
- unit tests updated to run without any pysqlite installed; pool
test uses a mock DBAPI
-rw-r--r--CHANGES2
-rw-r--r--test/engine/pool.py38
-rw-r--r--test/engine/proxy_engine.py11
3 files changed, 35 insertions, 16 deletions
diff --git a/CHANGES b/CHANGES
index 5887b631d..f456647b3 100644
--- 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
diff --git a/test/engine/pool.py b/test/engine/pool.py
index fd09eb1c7..d21f928a1 100644
--- a/test/engine/pool.py
+++ b/test/engine/pool.py
@@ -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__":
diff --git a/test/engine/proxy_engine.py b/test/engine/proxy_engine.py
index 5b957b4dc..26b738e41 100644
--- a/test/engine/proxy_engine.py
+++ b/test/engine/proxy_engine.py
@@ -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