Commits

Michael Manfre committed f8eb9a2

Added test for bug 58 (thanks jimdewees)

Comments (0)

Files changed (1)

tests/test_main/regressiontests/models.py

 class Bug62Table(models.Model):
     email = models.CharField(max_length=255, blank=True)
 
+class Bug58TableRecipe(models.Model):
+    name = models.CharField(max_length=30)
+
+class Bug58TableIngredient(models.Model):
+    name = models.CharField(max_length=30)
+
+class Bug58TableItem(models.Model):
+    recipe = models.ForeignKey(Bug58TableRecipe, related_name='item')
+    ingredient = models.ForeignKey(Bug58TableIngredient, related_name='item')
+    amount = models.CharField(max_length=30)
+
+class Bug58TestCase(TestCase):
+    def testDistinctRelated(self):
+        i1 = Bug58TableIngredient(name='bread')
+        i1.save()
+        i2 = Bug58TableIngredient(name='butter')
+        i2.save()
+        
+        r = Bug58TableRecipe(name='toast')
+        r.save()
+        
+        Bug58TableItem(recipe=r, ingredient=i1, amount='1 slice').save()
+        Bug58TableItem(recipe=r, ingredient=i2, amount='1 Tbsp').save()
+
+        q = list(Bug58TableRecipe.objects.filter(item__ingredient__name__in=['bread','butter']).distinct())
+        self.assertEqual(len(q), 1)
+
+
 class Bug62TestCase(TestCase):
     def testExclude(self):
         Bug62Table(email='').save()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.