summaryrefslogtreecommitdiff
path: root/test/orm/dynamic.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/orm/dynamic.py')
-rw-r--r--test/orm/dynamic.py34
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()
-
+