[Checkins] SVN: megrok.rdb/trunk/src/megrok/rdb/meta.py ugly hack to make instrumenting possible twice in tests. Must be a better way...
Martijn Faassen
faassen at infrae.com
Thu Sep 4 14:17:44 EDT 2008
Log message for revision 90818:
ugly hack to make instrumenting possible twice in tests. Must be a better way...
Changed:
U megrok.rdb/trunk/src/megrok/rdb/meta.py
-=-
Modified: megrok.rdb/trunk/src/megrok/rdb/meta.py
===================================================================
--- megrok.rdb/trunk/src/megrok/rdb/meta.py 2008-09-04 17:39:42 UTC (rev 90817)
+++ megrok.rdb/trunk/src/megrok/rdb/meta.py 2008-09-04 18:17:43 UTC (rev 90818)
@@ -1,6 +1,7 @@
import martian
from martian.error import GrokError
from sqlalchemy.ext.declarative import instrument_declarative
+import sqlalchemy
from megrok import rdb
@@ -26,7 +27,15 @@
# to make sure it's unique per metadata. A bit of a hack..
if not hasattr(metadata, '_decl_registry'):
metadata._decl_registry = {}
- instrument_declarative(class_, metadata._decl_registry, metadata)
+ try:
+ instrument_declarative(class_, metadata._decl_registry, metadata)
+ except sqlalchemy.exc.InvalidRequestError:
+ # XXX scary - catching too many errors
+ # allows re-grokking of classes that were already
+ # instrument. Better would be to un-instrument classes
+ # after tests, but how to uninstrument?
+ pass
+
return True
class ContainerGrokker(martian.ClassGrokker):
More information about the Checkins
mailing list