diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-09-04 21:26:49 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-09-04 21:26:49 +0000 |
| commit | f432bd3550443fb27711e463b086deae7c3096df (patch) | |
| tree | fe344c23a69385a347b256f3a6356e388b0e865a /test | |
| parent | c586c0fe892510a853168391ccb5528516dc56da (diff) | |
| download | sqlalchemy-f432bd3550443fb27711e463b086deae7c3096df.tar.gz | |
- Fixed exception throw which would occur when string-based
primaryjoin condition was used in conjunction with backref.
Diffstat (limited to 'test')
| -rw-r--r-- | test/ext/declarative.py | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/test/ext/declarative.py b/test/ext/declarative.py index 3121f959f..772dca8e1 100644 --- a/test/ext/declarative.py +++ b/test/ext/declarative.py @@ -4,7 +4,7 @@ from sqlalchemy.ext import declarative as decl from sqlalchemy import exc from testlib import sa, testing from testlib.sa import MetaData, Table, Column, Integer, String, ForeignKey, ForeignKeyConstraint, asc -from testlib.sa.orm import relation, create_session, class_mapper, eagerload, compile_mappers +from testlib.sa.orm import relation, create_session, class_mapper, eagerload, compile_mappers, backref from testlib.testing import eq_ from orm._base import ComparableEntity @@ -114,7 +114,27 @@ class DeclarativeTest(testing.TestBase, testing.AssertsExecutionResults): id = Column(Integer, primary_key=True) rel = relation("User", primaryjoin="User.addresses==Foo.id") self.assertRaisesMessage(exc.InvalidRequestError, "'addresses' is not an instance of ColumnProperty", compile_mappers) - + + def test_string_dependency_resolution_in_backref(self): + class User(Base, ComparableEntity): + __tablename__ = 'users' + id = Column(Integer, primary_key=True) + name = Column(String(50)) + addresses = relation("Address", + primaryjoin="User.id==Address.user_id", + backref="user" + ) + + class Address(Base, ComparableEntity): + __tablename__ = 'addresses' + id = Column(Integer, primary_key=True) + email = Column(String(50)) + user_id = Column(Integer, ForeignKey('users.id')) + + compile_mappers() + eq_(str(User.addresses.property.primaryjoin), str(Address.user.property.primaryjoin)) + + def test_uncompiled_attributes_in_relation(self): class Address(Base, ComparableEntity): __tablename__ = 'addresses' |
