PageRenderTime 28ms CodeModel.GetById 24ms RepoModel.GetById 0ms app.codeStats 0ms

/django/contrib/flatpages/tests/views.py

https://code.google.com/p/mango-py/
Python | 75 lines | 65 code | 10 blank | 0 comment | 3 complexity | e9a5ff366c0c751513687eaeb7103b46 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. import os
  2. from django.conf import settings
  3. from django.contrib.auth.models import User
  4. from django.contrib.flatpages.models import FlatPage
  5. from django.test import TestCase
  6. class FlatpageViewTests(TestCase):
  7. fixtures = ['sample_flatpages']
  8. urls = 'django.contrib.flatpages.tests.urls'
  9. def setUp(self):
  10. self.old_MIDDLEWARE_CLASSES = settings.MIDDLEWARE_CLASSES
  11. flatpage_middleware_class = 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware'
  12. if flatpage_middleware_class in settings.MIDDLEWARE_CLASSES:
  13. settings.MIDDLEWARE_CLASSES = tuple(m for m in settings.MIDDLEWARE_CLASSES if m != flatpage_middleware_class)
  14. self.old_TEMPLATE_DIRS = settings.TEMPLATE_DIRS
  15. settings.TEMPLATE_DIRS = (
  16. os.path.join(
  17. os.path.dirname(__file__),
  18. 'templates'
  19. ),
  20. )
  21. self.old_LOGIN_URL = settings.LOGIN_URL
  22. settings.LOGIN_URL = '/accounts/login/'
  23. def tearDown(self):
  24. settings.MIDDLEWARE_CLASSES = self.old_MIDDLEWARE_CLASSES
  25. settings.TEMPLATE_DIRS = self.old_TEMPLATE_DIRS
  26. settings.LOGIN_URL = self.old_LOGIN_URL
  27. def test_view_flatpage(self):
  28. "A flatpage can be served through a view"
  29. response = self.client.get('/flatpage_root/flatpage/')
  30. self.assertEqual(response.status_code, 200)
  31. self.assertContains(response, "<p>Isn't it flat!</p>")
  32. def test_view_non_existent_flatpage(self):
  33. "A non-existent flatpage raises 404 when served through a view"
  34. response = self.client.get('/flatpage_root/no_such_flatpage/')
  35. self.assertEqual(response.status_code, 404)
  36. def test_view_authenticated_flatpage(self):
  37. "A flatpage served through a view can require authentication"
  38. response = self.client.get('/flatpage_root/sekrit/')
  39. self.assertRedirects(response, '/accounts/login/?next=/flatpage_root/sekrit/')
  40. User.objects.create_user('testuser', 'test@example.com', 's3krit')
  41. self.client.login(username='testuser',password='s3krit')
  42. response = self.client.get('/flatpage_root/sekrit/')
  43. self.assertEqual(response.status_code, 200)
  44. self.assertContains(response, "<p>Isn't it sekrit!</p>")
  45. def test_fallback_flatpage(self):
  46. "A fallback flatpage won't be served if the middleware is disabled"
  47. response = self.client.get('/flatpage/')
  48. self.assertEqual(response.status_code, 404)
  49. def test_fallback_non_existent_flatpage(self):
  50. "A non-existent flatpage won't be served if the fallback middlware is disabled"
  51. response = self.client.get('/no_such_flatpage/')
  52. self.assertEqual(response.status_code, 404)
  53. def test_view_flatpage_special_chars(self):
  54. "A flatpage with special chars in the URL can be served through a view"
  55. fp = FlatPage.objects.create(
  56. url="/some.very_special~chars-here/",
  57. title="A very special page",
  58. content="Isn't it special!",
  59. enable_comments=False,
  60. registration_required=False,
  61. )
  62. fp.sites.add(settings.SITE_ID)
  63. response = self.client.get('/flatpage_root/some.very_special~chars-here/')
  64. self.assertEqual(response.status_code, 200)
  65. self.assertContains(response, "<p>Isn't it special!</p>")