summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2008-11-10 16:18:57 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2008-11-10 16:18:57 +0000
commit2c5f3e8397b52b9a52b2fdd0bef7aed77762e410 (patch)
tree65c70c7c44170f8dca80104c118fd7f2dddf62dd
parent306bee4ecd1ddcab860f9b39866b2f57b6ec509a (diff)
downloadsqlalchemy-2c5f3e8397b52b9a52b2fdd0bef7aed77762e410.tar.gz
- Restored NotImplementedError on Cls.relation.in_()
[ticket:1140] [ticket:1221]
-rw-r--r--CHANGES3
-rw-r--r--lib/sqlalchemy/orm/properties.py4
-rw-r--r--test/orm/query.py3
3 files changed, 10 insertions, 0 deletions
diff --git a/CHANGES b/CHANGES
index d71fd226e..373a56559 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 2fc72e813..dbc3430a0 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 3e2f327c3..72cb1d4ae 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")