From 2c5f3e8397b52b9a52b2fdd0bef7aed77762e410 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Mon, 10 Nov 2008 16:18:57 +0000 Subject: [PATCH] - Restored NotImplementedError on Cls.relation.in_() [ticket:1140] [ticket:1221] --- CHANGES | 3 +++ lib/sqlalchemy/orm/properties.py | 4 ++++ test/orm/query.py | 3 +++ 3 files changed, 10 insertions(+) diff --git a/CHANGES b/CHANGES index d71fd226ea..373a56559f 100644 --- a/CHANGES +++ b/CHANGES @@ -30,6 +30,9 @@ CHANGES error message when executed against multiple entities. [ticket:1220] + - Restored NotImplementedError on Cls.relation.in_() + [ticket:1140] [ticket:1221] + - sql - Removed the 'properties' attribute of the Connection object, Connection.info should be used. diff --git a/lib/sqlalchemy/orm/properties.py b/lib/sqlalchemy/orm/properties.py index 2fc72e8130..dbc3430a06 100644 --- a/lib/sqlalchemy/orm/properties.py +++ b/lib/sqlalchemy/orm/properties.py @@ -359,6 +359,10 @@ class PropertyLoader(StrategizedProperty): def of_type(self, cls): return PropertyLoader.Comparator(self.prop, self.mapper, cls) + def in_(self, other): + raise NotImplementedError("in_() not yet supported for relations. For a " + "simple many-to-one, use in_() against the set of foreign key values.") + def __eq__(self, other): if other is None: if self.prop.direction in [ONETOMANY, MANYTOMANY]: diff --git a/test/orm/query.py b/test/orm/query.py index 3e2f327c35..72cb1d4aeb 100644 --- a/test/orm/query.py +++ b/test/orm/query.py @@ -434,6 +434,9 @@ class OperatorTest(QueryTest, AssertsCompiledSQL): self._test(User.id.in_(['a', 'b']), "users.id IN (:id_1, :id_2)") + def test_in_on_relation_not_supported(self): + self.assertRaises(NotImplementedError, Address.user.in_, [User(id=5)]) + def test_between(self): self._test(User.id.between('a', 'b'), "users.id BETWEEN :id_1 AND :id_2") -- 2.47.3