PageRenderTime 240ms CodeModel.GetById 40ms app.highlight 38ms RepoModel.GetById 0ms app.codeStats 1ms

/tests/regressiontests/dates/tests.py

https://code.google.com/p/mango-py/
Python | 81 lines | 74 code | 7 blank | 0 comment | 0 complexity | ce03898d9efe01389f4f382a56619f97 MD5 | raw file
Possible License(s): BSD-3-Clause
 1from datetime import datetime
 2
 3from django.test import TestCase
 4
 5from models import Article, Comment, Category
 6
 7
 8class DatesTests(TestCase):
 9    def test_related_model_traverse(self):
10        a1 = Article.objects.create(
11            title="First one",
12            pub_date=datetime(2005, 7, 28),
13        )
14        a2 = Article.objects.create(
15            title="Another one",
16            pub_date=datetime(2010, 7, 28),
17        )
18        a3 = Article.objects.create(
19            title="Third one, in the first day",
20            pub_date=datetime(2005, 7, 28),
21        )
22
23        a1.comments.create(
24            text="Im the HULK!",
25            pub_date=datetime(2005, 7, 28),
26        )
27        a1.comments.create(
28            text="HULK SMASH!",
29            pub_date=datetime(2005, 7, 29),
30        )
31        a2.comments.create(
32            text="LMAO",
33            pub_date=datetime(2010, 7, 28),
34        )
35        a3.comments.create(
36            text="+1",
37            pub_date=datetime(2005, 8, 29),
38        )
39
40        c = Category.objects.create(name="serious-news")
41        c.articles.add(a1, a3)
42
43        self.assertQuerysetEqual(
44            Comment.objects.dates("article__pub_date", "year"), [
45                datetime(2005, 1, 1),
46                datetime(2010, 1, 1),
47            ],
48            lambda d: d,
49        )
50        self.assertQuerysetEqual(
51            Comment.objects.dates("article__pub_date", "month"), [
52                datetime(2005, 7, 1),
53                datetime(2010, 7, 1),
54            ],
55            lambda d: d
56        )
57        self.assertQuerysetEqual(
58            Comment.objects.dates("article__pub_date", "day"), [
59                datetime(2005, 7, 28),
60                datetime(2010, 7, 28),
61            ],
62            lambda d: d
63        )
64        self.assertQuerysetEqual(
65            Article.objects.dates("comments__pub_date", "day"), [
66                datetime(2005, 7, 28),
67                datetime(2005, 7, 29),
68                datetime(2005, 8, 29),
69                datetime(2010, 7, 28),
70            ],
71            lambda d: d
72        )
73        self.assertQuerysetEqual(
74            Article.objects.dates("comments__approval_date", "day"), []
75        )
76        self.assertQuerysetEqual(
77            Category.objects.dates("articles__pub_date", "day"), [
78                datetime(2005, 7, 28),
79            ],
80            lambda d: d,
81        )