Question about commit in revision 3809

1 view
Skip to first unread message

Matt Wilson

unread,
Dec 5, 2007, 10:41:33 AM12/5/07
to TurboGears Trunk
Revision 3809 made this change to the testutil DBTest class

$ svn diff --diff-cmd=diff -r PREV:HEAD testutil.py
Index: testutil.py
===================================================================
--- testutil.py (revision 3757)
+++ testutil.py (revision 3809)
@@ -159,13 +159,20 @@
class DBTest(unittest.TestCase):
model = None

+ def _get_soClasses(self):
+ try:
+ return [self.model.__dict__[x] for x in
self.model.soClasses]
+
+ except AttributeError:
+ return self.model.__dict__.values()
+
def setUp(self):
if not self.model:
self.model = get_model()
if not self.model:
raise "Unable to run database tests without a model"

- for item in self.model.__dict__.values():
+ for item in self._get_soClasses():
if isinstance(item, types.TypeType) and issubclass(item,
sqlobject.SQLObject) and item != sqlobject.SQLObject
\
and item != InheritableSQLObject:
@@ -173,7 +180,7 @@

def tearDown(self):
database.rollback_all()
- for item in self.model.__dict__.values():
+ for item in self._get_soClasses():
if isinstance(item, types.TypeType) and issubclass(item,
sqlobject.SQLObject) and item != sqlobject.SQLObject
\
and item != InheritableSQLObject:

In the teardown case, shouldn't the tables be deleted in the reversed
order, so that the dependent tables are destroyed before the tables
that they depend on?

Florent Aide

unread,
Dec 5, 2007, 4:18:05 PM12/5/07
to turbogea...@googlegroups.com
> In the teardown case, shouldn't the tables be deleted in the reversed
> order, so that the dependent tables are destroyed before the tables
> that they depend on?

A dictionnary is not ordered so the teardown was not ordered before
this commit either...
Does this provoke problems for you?

Matt Wilson

unread,
Dec 6, 2007, 4:24:04 PM12/6/07
to TurboGears Trunk
I understand that dictionaries don't keep keys in order. However, the
self.model.soClasses object is not a dictionary. You can use
soClasses to force SQLObject to create your tables in a certain order.

Matt

Matt Wilson

unread,
Jan 11, 2008, 12:00:51 PM1/11/08
to TurboGears Trunk
I made a trac ticket with a suggestion for how to fix here:
http://trac.turbogears.org/ticket/1674
Reply all
Reply to author
Forward
0 new messages