Author: russellm
Date: 2010-09-12 15:11:52 -0500 (Sun, 12 Sep 2010)
New Revision: 13803

Added:
   django/branches/releases/1.2.X/tests/modeltests/m2m_and_m2o/tests.py
Modified:
   django/branches/releases/1.2.X/tests/modeltests/m2m_and_m2o/models.py
Log:
[1.2.X] Migrate m2m_and_m2o doctests. Thanks to Alex Gaynor.

Backport of r13786 from trunk.

Modified: django/branches/releases/1.2.X/tests/modeltests/m2m_and_m2o/models.py
===================================================================
--- django/branches/releases/1.2.X/tests/modeltests/m2m_and_m2o/models.py       
2010-09-12 20:11:41 UTC (rev 13802)
+++ django/branches/releases/1.2.X/tests/modeltests/m2m_and_m2o/models.py       
2010-09-12 20:11:52 UTC (rev 13803)
@@ -19,47 +19,3 @@
 
     class Meta:
         ordering = ('num',)
-
-
-__test__ = {'API_TESTS':"""
->>> Issue.objects.all()
-[]
->>> r = User(username='russell')
->>> r.save()
->>> g = User(username='gustav')
->>> g.save()
-
->>> i = Issue(num=1)
->>> i.client = r
->>> i.save()
-
->>> i2 = Issue(num=2)
->>> i2.client = r
->>> i2.save()
->>> i2.cc.add(r)
-
->>> i3 = Issue(num=3)
->>> i3.client = g
->>> i3.save()
->>> i3.cc.add(r)
-
->>> from django.db.models.query import Q
-
->>> Issue.objects.filter(client=r.id)
-[<Issue: 1>, <Issue: 2>]
->>> Issue.objects.filter(client=g.id)
-[<Issue: 3>]
->>> Issue.objects.filter(cc__id__exact=g.id)
-[]
->>> Issue.objects.filter(cc__id__exact=r.id)
-[<Issue: 2>, <Issue: 3>]
-
-# These queries combine results from the m2m and the m2o relationships.
-# They're three ways of saying the same thing.
->>> Issue.objects.filter(Q(cc__id__exact=r.id) | Q(client=r.id))
-[<Issue: 1>, <Issue: 2>, <Issue: 3>]
->>> Issue.objects.filter(cc__id__exact=r.id) | 
Issue.objects.filter(client=r.id)
-[<Issue: 1>, <Issue: 2>, <Issue: 3>]
->>> Issue.objects.filter(Q(client=r.id) | Q(cc__id__exact=r.id))
-[<Issue: 1>, <Issue: 2>, <Issue: 3>]
-"""}

Added: django/branches/releases/1.2.X/tests/modeltests/m2m_and_m2o/tests.py
===================================================================
--- django/branches/releases/1.2.X/tests/modeltests/m2m_and_m2o/tests.py        
                        (rev 0)
+++ django/branches/releases/1.2.X/tests/modeltests/m2m_and_m2o/tests.py        
2010-09-12 20:11:52 UTC (rev 13803)
@@ -0,0 +1,75 @@
+from django.db.models import Q
+from django.test import TestCase
+
+from models import Issue, User
+
+
+class RelatedObjectTests(TestCase):
+    def test_m2m_and_m2o(self):
+        r = User.objects.create(username="russell")
+        g = User.objects.create(username="gustav")
+        
+        i1 = Issue(num=1)
+        i1.client = r
+        i1.save()
+        
+        i2 = Issue(num=2)
+        i2.client = r
+        i2.save()
+        i2.cc.add(r)
+        
+        i3 = Issue(num=3)
+        i3.client = g
+        i3.save()
+        i3.cc.add(r)
+        
+        self.assertQuerysetEqual(
+            Issue.objects.filter(client=r.id), [
+                1,
+                2,
+            ],
+            lambda i: i.num
+        )
+        self.assertQuerysetEqual(
+            Issue.objects.filter(client=g.id), [
+                3,
+            ],
+            lambda i: i.num
+        )
+        self.assertQuerysetEqual(
+            Issue.objects.filter(cc__id__exact=g.id), []
+        )
+        self.assertQuerysetEqual(
+            Issue.objects.filter(cc__id__exact=r.id), [
+                2,
+                3,
+            ],
+            lambda i: i.num
+        )
+        
+        # These queries combine results from the m2m and the m2o relationships.
+        # They're three ways of saying the same thing.
+        self.assertQuerysetEqual(
+            Issue.objects.filter(Q(cc__id__exact = r.id) | Q(client=r.id)), [
+                1,
+                2,
+                3,
+            ],
+            lambda i: i.num
+        )
+        self.assertQuerysetEqual(
+            Issue.objects.filter(cc__id__exact=r.id) | 
Issue.objects.filter(client=r.id), [
+                1,
+                2,
+                3,
+            ],
+            lambda i: i.num
+        )
+        self.assertQuerysetEqual(
+            Issue.objects.filter(Q(client=r.id) | Q(cc__id__exact=r.id)), [
+                1,
+                2,
+                3,
+            ],
+            lambda i: i.num
+        )

-- 
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