]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Refactored the mock_engine in the tests so it's not duplicated in several places...
authorMichael Trier <mtrier@gmail.com>
Tue, 8 Jul 2008 01:37:38 +0000 (01:37 +0000)
committerMichael Trier <mtrier@gmail.com>
Tue, 8 Jul 2008 01:37:38 +0000 (01:37 +0000)
test/engine/ddlevents.py
test/engine/metadata.py
test/testlib/engines.py

index 117ee1219bbf7755a510f652b6bdfec1937b1d4f..9894a290050838de69f33e655bd05a131cda69bc 100644 (file)
@@ -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),
index db08fdb5269b0cc60ffb655b1f88c62cfb8f4a05..ba7cddb0ef634f138d9b40e18811e0a4ee70efec 100644 (file)
@@ -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):
index 5ad35a066361a7862269f45bb5c7455c9f424ee6..181cb005dab9a239508613991035f3c6e988bcca 100644 (file)
@@ -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.