summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authormike bayer <mike_mp@zzzcomputing.com>2017-09-05 09:44:06 -0400
committerGerrit Code Review <gerrit@awstats.zzzcomputing.com>2017-09-05 09:44:06 -0400
commiteabdbd1d3c9b8c43e1c5dec5bcb91a8b765e6a69 (patch)
treeee9e1560a72383716176afd6e6674e07876f5d34 /test
parentabf1296ed4e0bd56c771d984de1f8728098b5d27 (diff)
parent130f31ca79c7b40b2cb8aa1a4af7049408074d12 (diff)
downloadsqlalchemy-eabdbd1d3c9b8c43e1c5dec5bcb91a8b765e6a69.tar.gz
Merge "Check for non-mapped property in synonym"
Diffstat (limited to 'test')
-rw-r--r--test/orm/test_mapper.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/orm/test_mapper.py b/test/orm/test_mapper.py
index 2392aa002..f39e174b0 100644
--- a/test/orm/test_mapper.py
+++ b/test/orm/test_mapper.py
@@ -1406,6 +1406,31 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
u = s.query(User).filter(User.y == 8).one()
eq_(u.y, 8)
+ def test_synonym_of_non_property_raises(self):
+ from sqlalchemy.ext.associationproxy import association_proxy
+
+ class User(object):
+ pass
+
+ users, Address, addresses = (
+ self.tables.users,
+ self.classes.Address,
+ self.tables.addresses)
+
+ mapper(User, users, properties={
+ 'y': synonym('x'),
+ 'addresses': relationship(Address)
+ })
+ mapper(Address, addresses)
+ User.x = association_proxy("addresses", "email_address")
+
+ assert_raises_message(
+ sa.exc.InvalidRequestError,
+ r'synonym\(\) attribute "User.x" only supports ORM mapped '
+ 'attributes, got .*AssociationProxy',
+ getattr, User.y, "property"
+ )
+
def test_synonym_column_location(self):
users, User = self.tables.users, self.classes.User