1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
"""basic tests of lazy loaded attributes"""
from sqlalchemy import testing
from sqlalchemy.orm import mapper, relationship, create_session, immediateload
from sqlalchemy.testing import eq_
from test.orm import _fixtures
class ImmediateTest(_fixtures.FixtureTest):
run_inserts = 'once'
run_deletes = None
def test_basic_option(self):
Address, addresses, users, User = (self.classes.Address,
self.tables.addresses,
self.tables.users,
self.classes.User)
mapper(Address, addresses)
mapper(User, users, properties={
'addresses':relationship(Address)
})
sess = create_session()
l = sess.query(User).options(immediateload(User.addresses)).filter(users.c.id==7).all()
eq_(len(sess.identity_map), 2)
sess.close()
eq_(
[User(id=7, addresses=[Address(id=1, email_address='jack@bean.com')])],
l
)
def test_basic(self):
Address, addresses, users, User = (self.classes.Address,
self.tables.addresses,
self.tables.users,
self.classes.User)
mapper(Address, addresses)
mapper(User, users, properties={
'addresses':relationship(Address, lazy='immediate')
})
sess = create_session()
l = sess.query(User).filter(users.c.id==7).all()
eq_(len(sess.identity_map), 2)
sess.close()
eq_(
[User(id=7, addresses=[Address(id=1, email_address='jack@bean.com')])],
l
)
|