1
from __future__ import absolute_import
1
from __future__ import unicode_literals
5
5
from django.core.exceptions import ImproperlyConfigured
6
from django.test import TestCase, skipUnlessDBFeature
7
from django.test.utils import override_settings, requires_tz_support
6
from django.test import TestCase, override_settings, skipUnlessDBFeature
7
from django.test.utils import requires_tz_support
8
8
from django.utils import timezone
10
10
from .models import Book, BookSigning
13
13
def _make_books(n, base_date):
15
b = Book.objects.create(
16
16
name='Book %d' % i,
17
17
slug='book-%d' % i,
19
19
pubdate=base_date - datetime.timedelta(days=i))
21
22
class ArchiveIndexViewTests(TestCase):
22
23
fixtures = ['generic-views-test-data.json']
23
24
urls = 'generic_views.urls'
26
26
def test_archive_view(self):
27
27
res = self.client.get('/dates/books/')
28
28
self.assertEqual(res.status_code, 200)
159
159
def test_year_view_allow_future(self):
160
160
# Create a new book in the future
161
161
year = datetime.date.today().year + 1
162
b = Book.objects.create(name="The New New Testement", pages=600, pubdate=datetime.date(year, 1, 1))
162
Book.objects.create(name="The New New Testement", pages=600, pubdate=datetime.date(year, 1, 1))
163
163
res = self.client.get('/dates/books/%s/' % year)
164
164
self.assertEqual(res.status_code, 404)
292
292
"Content can exist on any day of the previous month. Refs #14711"
293
293
self.pubdate_list = [
294
294
datetime.date(2010, month, day)
295
for month,day in ((9,1), (10,2), (11,3))
295
for month, day in ((9, 1), (10, 2), (11, 3))
297
297
for pubdate in self.pubdate_list:
298
298
name = str(pubdate)
301
301
res = self.client.get('/dates/books/2010/nov/allow_empty/')
302
302
self.assertEqual(res.status_code, 200)
303
self.assertEqual(res.context['previous_month'], datetime.date(2010,10,1))
303
self.assertEqual(res.context['previous_month'], datetime.date(2010, 10, 1))
304
304
# The following test demonstrates the bug
305
305
res = self.client.get('/dates/books/2010/nov/')
306
306
self.assertEqual(res.status_code, 200)
307
self.assertEqual(res.context['previous_month'], datetime.date(2010,10,1))
307
self.assertEqual(res.context['previous_month'], datetime.date(2010, 10, 1))
308
308
# The bug does not occur here because a Book with pubdate of Sep 1 exists
309
309
res = self.client.get('/dates/books/2010/oct/')
310
310
self.assertEqual(res.status_code, 200)
311
self.assertEqual(res.context['previous_month'], datetime.date(2010,9,1))
311
self.assertEqual(res.context['previous_month'], datetime.date(2010, 9, 1))
313
313
def test_datetime_month_view(self):
314
314
BookSigning.objects.create(event_date=datetime.datetime(2008, 2, 1, 12, 0))