diff options
Diffstat (limited to 'test/orm/dynamic.py')
-rw-r--r-- | test/orm/dynamic.py | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/test/orm/dynamic.py b/test/orm/dynamic.py index 7d0d748e3..80e3982da 100644 --- a/test/orm/dynamic.py +++ b/test/orm/dynamic.py @@ -9,7 +9,7 @@ from query import QueryTest class DynamicTest(QueryTest): keep_mappers = False - + def setup_mappers(self): pass @@ -38,12 +38,12 @@ class DynamicTest(QueryTest): def go(): assert [User(id=7, addresses=[Address(id=1, email_address='jack@bean.com')])] == q.filter(User.id==7).all() self.assert_sql_count(testbase.db, go, 2) - + class FlushTest(FixtureTest): def test_basic(self): class Fixture(Base): pass - + mapper(User, users, properties={ 'addresses':dynamic_loader(mapper(Address, addresses)) }) @@ -55,18 +55,19 @@ class FlushTest(FixtureTest): sess.save(u1) sess.save(u2) sess.flush() - + sess.clear() # test the test fixture a little bit assert User(name='jack', addresses=[Address(email_address='wrong')]) != sess.query(User).first() assert User(name='jack', addresses=[Address(email_address='lala@hoho.com')]) == sess.query(User).first() - + assert [ User(name='jack', addresses=[Address(email_address='lala@hoho.com')]), User(name='ed', addresses=[Address(email_address='foo@bar.com')]) ] == sess.query(User).all() + @testing.fails_on('maxdb') def test_delete(self): mapper(User, users, properties={ 'addresses':dynamic_loader(mapper(Address, addresses), backref='user') @@ -80,16 +81,17 @@ class FlushTest(FixtureTest): u.addresses.append(Address(email_address='e')) u.addresses.append(Address(email_address='f')) sess.save(u) - + assert Address(email_address='c') == u.addresses[2] sess.delete(u.addresses[2]) sess.delete(u.addresses[4]) sess.delete(u.addresses[3]) assert [Address(email_address='a'), Address(email_address='b'), Address(email_address='d')] == list(u.addresses) - + sess.delete(u) sess.close() + @testing.fails_on('maxdb') def test_remove_orphans(self): mapper(User, users, properties={ 'addresses':dynamic_loader(mapper(Address, addresses), cascade="all, delete-orphan", backref='user') @@ -104,20 +106,20 @@ class FlushTest(FixtureTest): u.addresses.append(Address(email_address='f')) sess.save(u) - assert [Address(email_address='a'), Address(email_address='b'), Address(email_address='c'), + assert [Address(email_address='a'), Address(email_address='b'), Address(email_address='c'), Address(email_address='d'), Address(email_address='e'), Address(email_address='f')] == sess.query(Address).all() assert Address(email_address='c') == u.addresses[2] - + try: del u.addresses[3] assert False except TypeError, e: assert "doesn't support item deletion" in str(e), str(e) - + for a in u.addresses.filter(Address.email_address.in_(['c', 'e', 'f'])): u.addresses.remove(a) - + assert [Address(email_address='a'), Address(email_address='b'), Address(email_address='d')] == list(u.addresses) assert [Address(email_address='a'), Address(email_address='b'), Address(email_address='d')] == sess.query(Address).all() @@ -144,10 +146,10 @@ def create_backref_test(autoflush, saveuser): if not autoflush: sess.flush() - + assert u in sess assert a in sess - + self.assert_(list(u.addresses) == [a]) a.user = None @@ -165,9 +167,9 @@ def create_backref_test(autoflush, saveuser): setattr(FlushTest, test_backref.__name__, test_backref) for autoflush in (False, True): - for saveuser in (False, True): - create_backref_test(autoflush, saveuser) + for saveuser in (False, True): + create_backref_test(autoflush, saveuser) if __name__ == '__main__': testbase.main() - + |