summaryrefslogtreecommitdiff
path: root/test/testbase.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2007-01-27 22:31:39 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2007-01-27 22:31:39 +0000
commit1b4e9a922128bdcd9645783427a72fe869cbfcb8 (patch)
treed8f4e38c0356ff087439f0cdfd9262b01ff40daf /test/testbase.py
parent2ffaf5603f2e860ec29f3463407c477dc3b1fec4 (diff)
downloadsqlalchemy-1b4e9a922128bdcd9645783427a72fe869cbfcb8.tar.gz
- added a standardized test harness for ORM tests
- added three-level mapping test. needed some massaging for postgres
Diffstat (limited to 'test/testbase.py')
-rw-r--r--test/testbase.py21
1 files changed, 20 insertions, 1 deletions
diff --git a/test/testbase.py b/test/testbase.py
index e96b30dcb..7d981509d 100644
--- a/test/testbase.py
+++ b/test/testbase.py
@@ -10,7 +10,8 @@ import sqlalchemy.pool as pool
import re
import sqlalchemy
import optparse
-
+from sqlalchemy.schema import BoundMetaData
+from sqlalchemy.orm import clear_mappers
db = None
metadata = None
@@ -203,6 +204,24 @@ class AssertMixin(PersistTest):
finally:
self.assert_(db.sql_count == count, "desired statement count %d does not match %d" % (count, db.sql_count))
+class ORMTest(AssertMixin):
+ def setUpAll(self):
+ global metadata
+ metadata = BoundMetaData(db)
+ self.define_tables(metadata)
+ metadata.create_all()
+ def define_tables(self, metadata):
+ raise NotImplementedError()
+ def get_metadata(self):
+ return metadata
+ def tearDownAll(self):
+ metadata.drop_all()
+ def tearDown(self):
+ clear_mappers()
+ for t in metadata.table_iterator(reverse=True):
+ t.delete().execute().close()
+
+
class EngineAssert(proxy.BaseProxyEngine):
"""decorates a SQLEngine object to match the incoming queries against a set of assertions."""
def __init__(self, engine):