From: Mike Bayer Date: Mon, 10 Nov 2008 16:18:57 +0000 (+0000) Subject: - Restored NotImplementedError on Cls.relation.in_() X-Git-Tag: rel_0_5rc4~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2c5f3e8397b52b9a52b2fdd0bef7aed77762e410;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - Restored NotImplementedError on Cls.relation.in_() [ticket:1140] [ticket:1221] --- 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")