Permalink
Browse files

[soc2010/query-refactor] Implemented __in.

  • Loading branch information...
1 parent 9a895a6 commit 3efa6195411f46dcffb0ee78b9a2ce7dc1876421 @alex alex committed Jun 22, 2010
Showing with 27 additions and 0 deletions.
  1. +1 −0 django/contrib/mongodb/compiler.py
  2. +26 −0 tests/regressiontests/mongodb/tests.py
@@ -10,6 +10,7 @@ class SQLCompiler(object):
"lt": lambda params, value_annotation, negated: {"$lt": params[0]},
"isnull": lambda params, value_annotation, negated: {"$ne": None} if value_annotation == negated else None,
"gt": lambda params, value_annotation, negated: {"$gt": params[0]},
+ "in": lambda params, value_annotation, negated: {"$in": params},
}
def __init__(self, query, connection, using):
@@ -258,3 +258,29 @@ def test_gt(self):
],
lambda g: g.name,
)
+
+ def test_in(self):
+ q = Group.objects.create(name="Queen", year_formed=1971)
+ e = Group.objects.create(name="The E Street Band", year_formed=1972)
+
+ self.assertQuerysetEqual(
+ Group.objects.filter(year_formed__in=[1972]), [
+ "The E Street Band",
+ ],
+ lambda g: g.name,
+ )
+
+ self.assertQuerysetEqual(
+ Group.objects.filter(year_formed__in=[1972, 1971]), [
+ "Queen",
+ "The E Street Band",
+ ],
+ lambda g: g.name
+ )
+
+ self.assertQuerysetEqual(
+ Group.objects.exclude(year_formed__in=[1972]), [
+ "Queen",
+ ],
+ lambda g: g.name,
+ )

0 comments on commit 3efa619

Please sign in to comment.