PageRenderTime 283ms CodeModel.GetById 101ms app.highlight 5ms RepoModel.GetById 116ms app.codeStats 0ms

/tests/modeltests/m2m_intermediary/tests.py

https://code.google.com/p/mango-py/
Python | 38 lines | 29 code | 9 blank | 0 comment | 0 complexity | 35646c459ce7c3d03adf66d2cda002b1 MD5 | raw file
 1from datetime import datetime
 2
 3from django.test import TestCase
 4
 5from models import Reporter, Article, Writer
 6
 7
 8class M2MIntermediaryTests(TestCase):
 9    def test_intermeiary(self):
10        r1 = Reporter.objects.create(first_name="John", last_name="Smith")
11        r2 = Reporter.objects.create(first_name="Jane", last_name="Doe")
12
13        a = Article.objects.create(
14            headline="This is a test", pub_date=datetime(2005, 7, 27)
15        )
16
17        w1 = Writer.objects.create(reporter=r1, article=a, position="Main writer")
18        w2 = Writer.objects.create(reporter=r2, article=a, position="Contributor")
19
20        self.assertQuerysetEqual(
21            a.writer_set.select_related().order_by("-position"), [
22                ("John Smith", "Main writer"),
23                ("Jane Doe", "Contributor"),
24            ],
25            lambda w: (unicode(w.reporter), w.position)
26        )
27        self.assertEqual(w1.reporter, r1)
28        self.assertEqual(w2.reporter, r2)
29
30        self.assertEqual(w1.article, a)
31        self.assertEqual(w2.article, a)
32
33        self.assertQuerysetEqual(
34            r1.writer_set.all(), [
35                ("John Smith", "Main writer")
36            ],
37            lambda w: (unicode(w.reporter), w.position)
38        )