summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Trier <mtrier@gmail.com>2008-07-08 01:37:38 +0000
committerMichael Trier <mtrier@gmail.com>2008-07-08 01:37:38 +0000
commitcec5947b5ba09f430d683625e695d64e09210ef1 (patch)
tree6275b1bbf35932dcbcc1cbe87e77f633e0a256ba
parent93c706a03bc809e21208cb6e9f76b23ed6d2ff19 (diff)
downloadsqlalchemy-cec5947b5ba09f430d683625e695d64e09210ef1.tar.gz
Refactored the mock_engine in the tests so it's not duplicated in several places. Closes #1098
-rw-r--r--test/engine/ddlevents.py26
-rw-r--r--test/engine/metadata.py16
-rw-r--r--test/testlib/engines.py16
3 files changed, 20 insertions, 38 deletions
diff --git a/test/engine/ddlevents.py b/test/engine/ddlevents.py
index 117ee1219..9894a2900 100644
--- a/test/engine/ddlevents.py
+++ b/test/engine/ddlevents.py
@@ -3,7 +3,7 @@ from sqlalchemy.schema import DDL
from sqlalchemy import create_engine
from testlib.sa import MetaData, Table, Column, Integer, String
import testlib.sa as tsa
-from testlib import TestBase, testing
+from testlib import TestBase, testing, engines
class DDLEventTest(TestBase):
@@ -37,18 +37,8 @@ class DDLEventTest(TestBase):
assert bind is self.bind
self.state = action
- def mock_engine(self):
- buffer = []
- def executor(sql, *a, **kw):
- buffer.append(sql)
- engine = create_engine(testing.db.name + '://',
- strategy='mock', executor=executor)
- assert not hasattr(engine, 'mock')
- engine.mock = buffer
- return engine
-
def setUp(self):
- self.bind = self.mock_engine()
+ self.bind = engines.mock_engine()
self.metadata = MetaData()
self.table = Table('t', self.metadata, Column('id', Integer))
@@ -191,18 +181,8 @@ class DDLEventTest(TestBase):
class DDLExecutionTest(TestBase):
- def mock_engine(self):
- buffer = []
- def executor(sql, *a, **kw):
- buffer.append(sql)
- engine = create_engine(testing.db.name + '://',
- strategy='mock', executor=executor)
- assert not hasattr(engine, 'mock')
- engine.mock = buffer
- return engine
-
def setUp(self):
- self.engine = self.mock_engine()
+ self.engine = engines.mock_engine()
self.metadata = MetaData(self.engine)
self.users = Table('users', self.metadata,
Column('user_id', Integer, primary_key=True),
diff --git a/test/engine/metadata.py b/test/engine/metadata.py
index db08fdb52..ba7cddb0e 100644
--- a/test/engine/metadata.py
+++ b/test/engine/metadata.py
@@ -1,10 +1,10 @@
import testenv; testenv.configure_for_tests()
import pickle
-from sqlalchemy import MetaData, create_engine
+from sqlalchemy import MetaData
from testlib.sa import Table, Column, Integer, String, UniqueConstraint, \
CheckConstraint, ForeignKey
import testlib.sa as tsa
-from testlib import TestBase, ComparesTables, testing
+from testlib import TestBase, ComparesTables, testing, engines
class MetaDataTest(TestBase, ComparesTables):
@@ -118,18 +118,8 @@ class MetaDataTest(TestBase, ComparesTables):
class TableOptionsTest(TestBase):
- def mock_engine(self):
- buffer = []
- def executor(sql, *a, **kw):
- buffer.append(sql)
- engine = create_engine(testing.db.name + '://',
- strategy='mock', executor=executor)
- assert not hasattr(engine, 'mock')
- engine.mock = buffer
- return engine
-
def setUp(self):
- self.engine = self.mock_engine()
+ self.engine = engines.mock_engine()
self.metadata = MetaData(self.engine)
def test_prefixes(self):
diff --git a/test/testlib/engines.py b/test/testlib/engines.py
index 5ad35a066..181cb005d 100644
--- a/test/testlib/engines.py
+++ b/test/testlib/engines.py
@@ -1,8 +1,8 @@
import sys, types, weakref
-from testlib import config
+from sqlalchemy import create_engine
+from testlib import config, testing
from testlib.compat import set, _function_named, deque
-
class ConnectionKiller(object):
def __init__(self):
self.proxy_refs = weakref.WeakKeyDictionary()
@@ -132,6 +132,18 @@ def utf8_engine(url=None, options=None):
return testing_engine(url, options)
+def mock_engine(db=None):
+ """Provides a mocking engine based on the current testing.db."""
+
+ dbi = db or testing.db
+ buffer = []
+ def executor(sql, *a, **kw):
+ buffer.append(sql)
+ engine = create_engine(dbi.name + '://',
+ strategy='mock', executor=executor)
+ assert not hasattr(engine, 'mock')
+ engine.mock = buffer
+ return engine
class ReplayableSession(object):
"""A simple record/playback tool.