1
from __future__ import absolute_import
3
from datetime import datetime
5
from django.test import TestCase
7
from .models import Article, Comment, Category
10
class DatesTests(TestCase):
11
def test_related_model_traverse(self):
12
a1 = Article.objects.create(
14
pub_date=datetime(2005, 7, 28),
16
a2 = Article.objects.create(
18
pub_date=datetime(2010, 7, 28),
20
a3 = Article.objects.create(
21
title="Third one, in the first day",
22
pub_date=datetime(2005, 7, 28),
27
pub_date=datetime(2005, 7, 28),
31
pub_date=datetime(2005, 7, 29),
35
pub_date=datetime(2010, 7, 28),
39
pub_date=datetime(2005, 8, 29),
42
c = Category.objects.create(name="serious-news")
43
c.articles.add(a1, a3)
45
self.assertQuerysetEqual(
46
Comment.objects.dates("article__pub_date", "year"), [
52
self.assertQuerysetEqual(
53
Comment.objects.dates("article__pub_date", "month"), [
59
self.assertQuerysetEqual(
60
Comment.objects.dates("article__pub_date", "day"), [
61
datetime(2005, 7, 28),
62
datetime(2010, 7, 28),
66
self.assertQuerysetEqual(
67
Article.objects.dates("comments__pub_date", "day"), [
68
datetime(2005, 7, 28),
69
datetime(2005, 7, 29),
70
datetime(2005, 8, 29),
71
datetime(2010, 7, 28),
75
self.assertQuerysetEqual(
76
Article.objects.dates("comments__approval_date", "day"), []
78
self.assertQuerysetEqual(
79
Category.objects.dates("articles__pub_date", "day"), [
80
datetime(2005, 7, 28),