Author: Alex
Date: 2010-06-22 13:09:25 -0500 (Tue, 22 Jun 2010)
New Revision: 13384

Modified:
   django/branches/soc2010/query-refactor/django/contrib/mongodb/compiler.py
   django/branches/soc2010/query-refactor/tests/regressiontests/mongodb/tests.py
Log:
[soc2010/query-refactor] Implemented __in.

Modified: 
django/branches/soc2010/query-refactor/django/contrib/mongodb/compiler.py
===================================================================
--- django/branches/soc2010/query-refactor/django/contrib/mongodb/compiler.py   
2010-06-22 18:09:15 UTC (rev 13383)
+++ django/branches/soc2010/query-refactor/django/contrib/mongodb/compiler.py   
2010-06-22 18:09:25 UTC (rev 13384)
@@ -10,6 +10,7 @@
         "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):

Modified: 
django/branches/soc2010/query-refactor/tests/regressiontests/mongodb/tests.py
===================================================================
--- 
django/branches/soc2010/query-refactor/tests/regressiontests/mongodb/tests.py   
    2010-06-22 18:09:15 UTC (rev 13383)
+++ 
django/branches/soc2010/query-refactor/tests/regressiontests/mongodb/tests.py   
    2010-06-22 18:09:25 UTC (rev 13384)
@@ -258,3 +258,29 @@
             ],
             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,
+        )

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to django-upda...@googlegroups.com.
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en.

Reply via email to