mirror of
https://github.com/sqlalchemy/sqlalchemy.git
synced 2026-05-28 11:35:19 -04:00
20cdc64588
become an externally usable package but still remains within the main sqlalchemy parent package. in this system, we use kind of an ugly hack to get the noseplugin imported outside of the "sqlalchemy" package, while still making it available within sqlalchemy for usage by third party libraries.
58 lines
1.7 KiB
Python
58 lines
1.7 KiB
Python
"""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
|
|
)
|
|
|
|
|