diff options
| author | Michael Trier <mtrier@gmail.com> | 2008-07-08 01:37:38 +0000 |
|---|---|---|
| committer | Michael Trier <mtrier@gmail.com> | 2008-07-08 01:37:38 +0000 |
| commit | cec5947b5ba09f430d683625e695d64e09210ef1 (patch) | |
| tree | 6275b1bbf35932dcbcc1cbe87e77f633e0a256ba | |
| parent | 93c706a03bc809e21208cb6e9f76b23ed6d2ff19 (diff) | |
| download | sqlalchemy-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.py | 26 | ||||
| -rw-r--r-- | test/engine/metadata.py | 16 | ||||
| -rw-r--r-- | test/testlib/engines.py | 16 |
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. |
