You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

90 lines
3.2 KiB

from django.test import TestCase
from .factories import GalleryFactory
class RequestGalleryTest(TestCase):
urls = 'photologue.tests.test_urls'
def setUp(self):
super(RequestGalleryTest, self).setUp()
self.gallery = GalleryFactory(slug='test-gallery')
def test_archive_gallery_url_works(self):
response = self.client.get('/ptests/gallery/')
self.assertEqual(response.status_code, 200)
def test_archive_gallery_empty(self):
"""If there are no galleries to show, tell the visitor - don't show a
404."""
self.gallery.is_public = False
self.gallery.save()
response = self.client.get('/ptests/gallery/')
self.assertEqual(response.status_code, 200)
self.assertEqual(response.context['latest'].count(),
0)
def test_paginated_gallery_url_works(self):
response = self.client.get('/ptests/gallerylist/')
self.assertEqual(response.status_code, 200)
def test_gallery_works(self):
response = self.client.get('/ptests/gallery/test-gallery/')
self.assertEqual(response.status_code, 200)
def test_archive_year_gallery_works(self):
response = self.client.get('/ptests/gallery/2011/')
self.assertEqual(response.status_code, 200)
def test_archive_month_gallery_works(self):
response = self.client.get('/ptests/gallery/2011/dec/')
self.assertEqual(response.status_code, 200)
def test_archive_day_gallery_works(self):
response = self.client.get('/ptests/gallery/2011/dec/23/')
self.assertEqual(response.status_code, 200)
def test_detail_gallery_works(self):
response = self.client.get('/ptests/gallery/2011/dec/23/test-gallery/')
self.assertEqual(response.status_code, 200)
def test_redirect_to_list(self):
"""Trivial test - if someone requests the root url of the app
(i.e. /ptests/'), redirect them to the gallery list page."""
response = self.client.get('/ptests/')
self.assertRedirects(response, '/ptests/gallery/', 301, 200)
class GalleryPaginationTest(TestCase):
urls = 'photologue.tests.test_urls'
def test_pagination(self):
for i in range(1, 23):
GalleryFactory(title='gallery{0:0>3}'.format(i))
response = self.client.get('/ptests/gallerylist/')
self.assertEqual(response.status_code, 200)
self.assertEqual(len(response.context['object_list']),
20)
# Check first and last items.
self.assertEqual(response.context['object_list'][0].title,
'gallery022')
self.assertEqual(response.context['object_list'][19].title,
'gallery003')
# Now get the second page of results.
response = self.client.get('/ptests/gallerylist/?page=2')
self.assertEqual(response.status_code, 200)
self.assertEqual(len(response.context['object_list']),
2)
# Check first and last items.
self.assertEqual(response.context['object_list'][0].title,
'gallery002')
self.assertEqual(response.context['object_list'][1].title,
'gallery001')