diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-01-27 22:31:39 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-01-27 22:31:39 +0000 |
commit | 1b4e9a922128bdcd9645783427a72fe869cbfcb8 (patch) | |
tree | d8f4e38c0356ff087439f0cdfd9262b01ff40daf /test/testbase.py | |
parent | 2ffaf5603f2e860ec29f3463407c477dc3b1fec4 (diff) | |
download | sqlalchemy-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.py | 21 |
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): |