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.