diff options
Diffstat (limited to 'test/orm/test_pickled.py')
| -rw-r--r-- | test/orm/test_pickled.py | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/test/orm/test_pickled.py b/test/orm/test_pickled.py index a246ddbdc..972b298af 100644 --- a/test/orm/test_pickled.py +++ b/test/orm/test_pickled.py @@ -8,7 +8,8 @@ from test.lib.schema import Table, Column from sqlalchemy.orm import mapper, relationship, create_session, \ sessionmaker, attributes, interfaces,\ clear_mappers, exc as orm_exc,\ - configure_mappers + configure_mappers, Session, lazyload_all,\ + lazyload from test.orm import _base, _fixtures @@ -128,6 +129,33 @@ class PickleTest(_fixtures.FixtureTest): eq_(u2, User(name='ed', addresses=[Address(email_address='ed@bar.com')])) @testing.resolve_artifact_names + def test_instance_lazy_relation_loaders(self): + mapper(User, users, properties={ + 'addresses':relationship(Address, lazy='noload') + }) + mapper(Address, addresses) + + sess = Session() + u1 = User(name='ed', addresses=[ + Address( + email_address='ed@bar.com', + ) + ]) + + sess.add(u1) + sess.commit() + sess.close() + + u1 = sess.query(User).options( + lazyload(User.addresses) + ).first() + u2 = pickle.loads(pickle.dumps(u1)) + + sess = Session() + sess.add(u2) + assert u2.addresses + + @testing.resolve_artifact_names def test_instance_deferred_cols(self): mapper(User, users, properties={ 'addresses':relationship(Address, backref="user") |
