From: Michael Trier Date: Tue, 8 Jul 2008 01:37:38 +0000 (+0000) Subject: Refactored the mock_engine in the tests so it's not duplicated in several places... X-Git-Tag: rel_0_5beta2~22 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cec5947b5ba09f430d683625e695d64e09210ef1;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git Refactored the mock_engine in the tests so it's not duplicated in several places. Closes #1098 --- diff --git a/test/engine/ddlevents.py b/test/engine/ddlevents.py index 117ee1219b..9894a29005 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 db08fdb526..ba7cddb0ef 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 5ad35a0663..181cb005da 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.