summaryrefslogtreecommitdiff
path: root/test/orm/_base.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/orm/_base.py')
-rw-r--r--test/orm/_base.py26
1 files changed, 13 insertions, 13 deletions
diff --git a/test/orm/_base.py b/test/orm/_base.py
index 8d695e912..f08d253d5 100644
--- a/test/orm/_base.py
+++ b/test/orm/_base.py
@@ -1,10 +1,11 @@
-import gc
import inspect
import sys
import types
import sqlalchemy as sa
+import sqlalchemy.exceptions as sa_exc
from sqlalchemy.test import config, testing
from sqlalchemy.test.testing import resolve_artifact_names, adict
+from sqlalchemy.test.engines import drop_all_tables
from sqlalchemy.util import function_named
@@ -74,20 +75,19 @@ class ComparableEntity(BasicEntity):
if attr.startswith('_'):
continue
value = getattr(a, attr)
- if (hasattr(value, '__iter__') and
- not isinstance(value, basestring)):
- try:
- # catch AttributeError so that lazy loaders trigger
- battr = getattr(b, attr)
- except AttributeError:
- return False
+ try:
+ # handle lazy loader errors
+ battr = getattr(b, attr)
+ except (AttributeError, sa_exc.UnboundExecutionError):
+ return False
+
+ if hasattr(value, '__iter__'):
if list(value) != list(battr):
return False
else:
- if value is not None:
- if value != getattr(b, attr, None):
- return False
+ if value is not None and value != battr:
+ return False
return True
finally:
_recursion_stack.remove(id(self))
@@ -173,7 +173,7 @@ class MappedTest(ORMTest):
def setup(self):
if self.run_define_tables == 'each':
self.tables.clear()
- self.metadata.drop_all()
+ drop_all_tables(self.metadata)
self.metadata.clear()
self.define_tables(self.metadata)
self.metadata.create_all()
@@ -217,7 +217,7 @@ class MappedTest(ORMTest):
for cl in cls.classes.values():
cls.unregister_class(cl)
ORMTest.teardown_class()
- cls.metadata.drop_all()
+ drop_all_tables(cls.metadata)
cls.metadata.bind = None
@classmethod