1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- from django.core.urlresolvers import reverse
- from django.http import Http404
- from django.test import TestCase
- from misago.core.shortcuts import get_int_or_404
- class PaginateTests(TestCase):
- urls = 'misago.core.testproject.urls'
- def test_valid_page_handling(self):
- """Valid page number causes no errors"""
- response = self.client.get(
- reverse('test_pagination', kwargs={'page': 2}))
- self.assertEqual("5,6,7,8,9", response.content)
- def test_invalid_page_handling(self):
- """Invalid page number results in 404 error"""
- response = self.client.get(
- reverse('test_pagination', kwargs={'page': 42}))
- self.assertEqual(response.status_code, 404)
- def test_implicit_page_handling(self):
- """Implicit page number causes no errors"""
- response = self.client.get(
- reverse('test_pagination'))
- self.assertEqual("0,1,2,3,4", response.content)
- def test_explicit_page_handling(self):
- """Explicit page number results in redirect"""
- response = self.client.get(
- reverse('test_pagination', kwargs={'page': 1}))
- valid_url = "http://testserver/forum/test-pagination/"
- self.assertEqual(response['Location'], valid_url)
- class ValidateSlugTests(TestCase):
- urls = 'misago.core.testproject.urls'
- def test_valid_slug_handling(self):
- """Valid slug causes no interruption in view processing"""
- test_kwargs = {'model_slug': 'eric-the-fish', 'model_id': 1}
- response = self.client.get(
- reverse('validate_slug_view', kwargs=test_kwargs))
- self.assertIn("Allright", response.content)
- def test_invalid_slug_handling(self):
- """Invalid slug returns in redirect to valid page"""
- test_kwargs = {'model_slug': 'lion-the-eric', 'model_id': 1}
- response = self.client.get(
- reverse('validate_slug_view', kwargs=test_kwargs))
- valid_url = "http://testserver/forum/test-valid-slug/eric-the-fish-1/"
- self.assertEqual(response['Location'], valid_url)
- class GetIntOr404(TestCase):
- def test_valid_inputs(self):
- """get_int_or_404 returns int for valid values"""
- VALID_VALUES = (
- ('0', 0),
- ('123', 123),
- ('000123', 123),
- ('1', 1),
- )
- for value, result in VALID_VALUES:
- self.assertEqual(get_int_or_404(value), result)
- def test_invalid_inputs(self):
- """get_int_or_404 raises Http404 for invalid values"""
- INVALID_VALUES = (
- None,
- '',
- 'bob',
- '1bob',
- 'b0b',
- 'bob123',
- '12.321',
- '.4',
- '5.',
- )
- for value in INVALID_VALUES:
- with self.assertRaises(Http404):
- get_int_or_404(value)
|