~ubuntu-branches/debian/squeeze/python-django/squeeze

« back to all changes in this revision

Viewing changes to tests/regressiontests/views/tests/generic/date_based.py

  • Committer: Bazaar Package Importer
  • Author(s): Chris Lamb, Chris Lamb, David Spreen, Sandro Tosi
  • Date: 2008-11-19 21:31:00 UTC
  • mfrom: (1.2.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20081119213100-gp0lqhxl1qxa6dgl
Tags: 1.0.2-1
[ Chris Lamb ]
* New upstream bugfix release. Closes: #505783
* Add myself to Uploaders with ACK from Brett.

[ David Spreen ]
* Remove python-pysqlite2 from Recommends because Python 2.5 includes
  sqlite library used by Django. Closes: 497886

[ Sandro Tosi ]
* debian/control
  - switch Vcs-Browser field to viewsvn

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# coding: utf-8
2
 
from django.test import TestCase
3
 
from datetime import datetime
4
 
from datetime import timedelta
5
 
from regressiontests.views.models import Article, Author, DateArticle
6
 
 
7
 
class ObjectDetailTest(TestCase):
8
 
    fixtures = ['testdata.json']
9
 
    def setUp(self):
10
 
        # Correct the date for the current article
11
 
        current_article = Article.objects.get(title="Current Article")
12
 
        current_article.date_created = datetime.now()
13
 
        current_article.save()
14
 
 
15
 
    def test_finds_past(self):
16
 
        "date_based.object_detail can view a page in the past"
17
 
        response = self.client.get('/views/date_based/object_detail/2001/01/01/old_article/')
18
 
        self.assertEqual(response.status_code, 200)
19
 
        self.assertEqual(response.context['object'].title, "Old Article")
20
 
 
21
 
    def test_object_detail_finds_today(self):
22
 
        "date_based.object_detail can view a page from today"
23
 
        today_url = datetime.now().strftime('%Y/%m/%d')
24
 
        response = self.client.get('/views/date_based/object_detail/%s/current_article/' % today_url)
25
 
        self.assertEqual(response.status_code, 200)
26
 
        self.assertEqual(response.context['object'].title, "Current Article")
27
 
 
28
 
    def test_object_detail_ignores_future(self):
29
 
        "date_based.object_detail can view a page from the future, but only if allowed."
30
 
        response = self.client.get('/views/date_based/object_detail/3000/01/01/future_article/')
31
 
        self.assertEqual(response.status_code, 404)
32
 
 
33
 
    def test_object_detail_allowed_future_if_enabled(self):
34
 
        "date_based.object_detail can view a page from the future if explicitly allowed."
35
 
        response = self.client.get('/views/date_based/object_detail/3000/01/01/future_article/allow_future/')
36
 
        self.assertEqual(response.status_code, 200)
37
 
        self.assertEqual(response.context['object'].title, "Future Article")
38
 
 
39
 
class MonthArchiveTest(TestCase):
40
 
    def test_archive_month_includes_only_month(self):
41
 
        "Regression for #3031: Archives around Feburary include only one month"
42
 
        author = Author(name="John Smith")
43
 
        author.save()
44
 
 
45
 
        # 2004 was a leap year, so it should be weird enough to not cheat
46
 
        first_second_of_feb = datetime(2004, 2, 1, 0, 0, 1)
47
 
        first_second_of_mar = datetime(2004, 3, 1, 0, 0, 1)
48
 
        two_seconds = timedelta(0, 2, 0)
49
 
        article = Article(title="example", author=author)
50
 
 
51
 
        article.date_created = first_second_of_feb
52
 
        article.save()
53
 
        response = self.client.get('/views/date_based/archive_month/2004/02/')
54
 
        self.assertEqual(response.status_code, 200)
55
 
 
56
 
        article.date_created = first_second_of_feb-two_seconds
57
 
        article.save()
58
 
        response = self.client.get('/views/date_based/archive_month/2004/02/')
59
 
        self.assertEqual(response.status_code, 404)
60
 
 
61
 
        article.date_created = first_second_of_mar-two_seconds
62
 
        article.save()
63
 
        response = self.client.get('/views/date_based/archive_month/2004/02/')
64
 
        self.assertEqual(response.status_code, 200)
65
 
 
66
 
        article.date_created = first_second_of_mar
67
 
        article.save()
68
 
        response = self.client.get('/views/date_based/archive_month/2004/02/')
69
 
        self.assertEqual(response.status_code, 404)
70
 
 
71
 
        article2 = DateArticle(title="example", author=author)
72
 
 
73
 
        article2.date_created = first_second_of_feb.date()
74
 
        article2.save()
75
 
        response = self.client.get('/views/date_based/datefield/archive_month/2004/02/')
76
 
        self.assertEqual(response.status_code, 200)
77
 
 
78
 
        article2.date_created = (first_second_of_feb-two_seconds).date()
79
 
        article2.save()
80
 
        response = self.client.get('/views/date_based/datefield/archive_month/2004/02/')
81
 
        self.assertEqual(response.status_code, 404)
82
 
 
83
 
        article2.date_created = (first_second_of_mar-two_seconds).date()
84
 
        article2.save()
85
 
        response = self.client.get('/views/date_based/datefield/archive_month/2004/02/')
86
 
        self.assertEqual(response.status_code, 200)
87
 
 
88
 
        article2.date_created = first_second_of_mar.date()
89
 
        article2.save()
90
 
        response = self.client.get('/views/date_based/datefield/archive_month/2004/02/')
91
 
        self.assertEqual(response.status_code, 404)
92