Question about commit in revision 3809

10 vistas
Ir al primer mensaje no leído

Matt Wilson

no leída,
5 dic 2007, 10:41:33 a.m.5/12/2007
para 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

no leída,
5 dic 2007, 4:18:05 p.m.5/12/2007
para 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

no leída,
6 dic 2007, 4:24:04 p.m.6/12/2007
para 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

no leída,
11 ene 2008, 12:00:51 p.m.11/1/2008
para TurboGears Trunk
I made a trac ticket with a suggestion for how to fix here:
http://trac.turbogears.org/ticket/1674
Responder a todos
Responder al autor
Reenviar
0 mensajes nuevos