From abf599be33b383a6a5baf9493093b2126a622ac8 Mon Sep 17 00:00:00 2001 From: ttt Date: Sat, 13 May 2017 00:29:47 +0530 Subject: added all server files --- .../django/contrib/flatpages/tests/__init__.py | 0 .../contrib/flatpages/tests/templates/404.html | 1 + .../tests/templates/flatpages/default.html | 9 ++ .../tests/templates/registration/login.html | 0 .../django/contrib/flatpages/tests/test_csrf.py | 76 ++++++++++ .../django/contrib/flatpages/tests/test_forms.py | 99 +++++++++++++ .../contrib/flatpages/tests/test_middleware.py | 158 +++++++++++++++++++++ .../django/contrib/flatpages/tests/test_models.py | 22 +++ .../contrib/flatpages/tests/test_templatetags.py | 136 ++++++++++++++++++ .../django/contrib/flatpages/tests/test_views.py | 129 +++++++++++++++++ .../django/contrib/flatpages/tests/urls.py | 8 ++ 11 files changed, 638 insertions(+) create mode 100644 lib/python2.7/site-packages/django/contrib/flatpages/tests/__init__.py create mode 100644 lib/python2.7/site-packages/django/contrib/flatpages/tests/templates/404.html create mode 100644 lib/python2.7/site-packages/django/contrib/flatpages/tests/templates/flatpages/default.html create mode 100644 lib/python2.7/site-packages/django/contrib/flatpages/tests/templates/registration/login.html create mode 100644 lib/python2.7/site-packages/django/contrib/flatpages/tests/test_csrf.py create mode 100644 lib/python2.7/site-packages/django/contrib/flatpages/tests/test_forms.py create mode 100644 lib/python2.7/site-packages/django/contrib/flatpages/tests/test_middleware.py create mode 100644 lib/python2.7/site-packages/django/contrib/flatpages/tests/test_models.py create mode 100644 lib/python2.7/site-packages/django/contrib/flatpages/tests/test_templatetags.py create mode 100644 lib/python2.7/site-packages/django/contrib/flatpages/tests/test_views.py create mode 100644 lib/python2.7/site-packages/django/contrib/flatpages/tests/urls.py (limited to 'lib/python2.7/site-packages/django/contrib/flatpages/tests') diff --git a/lib/python2.7/site-packages/django/contrib/flatpages/tests/__init__.py b/lib/python2.7/site-packages/django/contrib/flatpages/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python2.7/site-packages/django/contrib/flatpages/tests/templates/404.html b/lib/python2.7/site-packages/django/contrib/flatpages/tests/templates/404.html new file mode 100644 index 0000000..5fd5f3c --- /dev/null +++ b/lib/python2.7/site-packages/django/contrib/flatpages/tests/templates/404.html @@ -0,0 +1 @@ +

Oh Noes!

\ No newline at end of file diff --git a/lib/python2.7/site-packages/django/contrib/flatpages/tests/templates/flatpages/default.html b/lib/python2.7/site-packages/django/contrib/flatpages/tests/templates/flatpages/default.html new file mode 100644 index 0000000..559e3f7 --- /dev/null +++ b/lib/python2.7/site-packages/django/contrib/flatpages/tests/templates/flatpages/default.html @@ -0,0 +1,9 @@ + + + +{{ flatpage.title }} + + +

{{ flatpage.content }}

+ + diff --git a/lib/python2.7/site-packages/django/contrib/flatpages/tests/templates/registration/login.html b/lib/python2.7/site-packages/django/contrib/flatpages/tests/templates/registration/login.html new file mode 100644 index 0000000..e69de29 diff --git a/lib/python2.7/site-packages/django/contrib/flatpages/tests/test_csrf.py b/lib/python2.7/site-packages/django/contrib/flatpages/tests/test_csrf.py new file mode 100644 index 0000000..cb51c12 --- /dev/null +++ b/lib/python2.7/site-packages/django/contrib/flatpages/tests/test_csrf.py @@ -0,0 +1,76 @@ +import os +from django.contrib.auth.models import User +from django.contrib.auth.tests.utils import skipIfCustomUser +from django.test import TestCase, Client +from django.test.utils import override_settings + + +@override_settings( + LOGIN_URL='/accounts/login/', + MIDDLEWARE_CLASSES=( + 'django.middleware.common.CommonMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware', + ), + TEMPLATE_DIRS=( + os.path.join(os.path.dirname(__file__), 'templates'), + ), + SITE_ID=1, +) +class FlatpageCSRFTests(TestCase): + fixtures = ['sample_flatpages', 'example_site'] + urls = 'django.contrib.flatpages.tests.urls' + + def setUp(self): + self.client = Client(enforce_csrf_checks=True) + + def test_view_flatpage(self): + "A flatpage can be served through a view, even when the middleware is in use" + response = self.client.get('/flatpage_root/flatpage/') + self.assertEqual(response.status_code, 200) + self.assertContains(response, "

Isn't it flat!

") + + def test_view_non_existent_flatpage(self): + "A non-existent flatpage raises 404 when served through a view, even when the middleware is in use" + response = self.client.get('/flatpage_root/no_such_flatpage/') + self.assertEqual(response.status_code, 404) + + @skipIfCustomUser + def test_view_authenticated_flatpage(self): + "A flatpage served through a view can require authentication" + response = self.client.get('/flatpage_root/sekrit/') + self.assertRedirects(response, '/accounts/login/?next=/flatpage_root/sekrit/') + User.objects.create_user('testuser', 'test@example.com', 's3krit') + self.client.login(username='testuser',password='s3krit') + response = self.client.get('/flatpage_root/sekrit/') + self.assertEqual(response.status_code, 200) + self.assertContains(response, "

Isn't it sekrit!

") + + def test_fallback_flatpage(self): + "A flatpage can be served by the fallback middlware" + response = self.client.get('/flatpage/') + self.assertEqual(response.status_code, 200) + self.assertContains(response, "

Isn't it flat!

") + + def test_fallback_non_existent_flatpage(self): + "A non-existent flatpage raises a 404 when served by the fallback middlware" + response = self.client.get('/no_such_flatpage/') + self.assertEqual(response.status_code, 404) + + def test_post_view_flatpage(self): + "POSTing to a flatpage served through a view will raise a CSRF error if no token is provided (Refs #14156)" + response = self.client.post('/flatpage_root/flatpage/') + self.assertEqual(response.status_code, 403) + + def test_post_fallback_flatpage(self): + "POSTing to a flatpage served by the middleware will raise a CSRF error if no token is provided (Refs #14156)" + response = self.client.post('/flatpage/') + self.assertEqual(response.status_code, 403) + + def test_post_unknown_page(self): + "POSTing to an unknown page isn't caught as a 403 CSRF error" + response = self.client.post('/no_such_page/') + self.assertEqual(response.status_code, 404) diff --git a/lib/python2.7/site-packages/django/contrib/flatpages/tests/test_forms.py b/lib/python2.7/site-packages/django/contrib/flatpages/tests/test_forms.py new file mode 100644 index 0000000..29fc0ca --- /dev/null +++ b/lib/python2.7/site-packages/django/contrib/flatpages/tests/test_forms.py @@ -0,0 +1,99 @@ +from __future__ import unicode_literals + +from django.conf import settings +from django.contrib.flatpages.forms import FlatpageForm +from django.contrib.flatpages.models import FlatPage +from django.test import TestCase +from django.test.utils import override_settings +from django.utils import translation + +@override_settings(SITE_ID=1) +class FlatpageAdminFormTests(TestCase): + fixtures = ['example_site'] + + def setUp(self): + self.form_data = { + 'title': "A test page", + 'content': "This is a test", + 'sites': [settings.SITE_ID], + } + + def test_flatpage_admin_form_url_validation(self): + "The flatpage admin form correctly validates urls" + self.assertTrue(FlatpageForm(data=dict(url='/new_flatpage/', **self.form_data)).is_valid()) + self.assertTrue(FlatpageForm(data=dict(url='/some.special~chars/', **self.form_data)).is_valid()) + self.assertTrue(FlatpageForm(data=dict(url='/some.very_special~chars-here/', **self.form_data)).is_valid()) + + self.assertFalse(FlatpageForm(data=dict(url='/a space/', **self.form_data)).is_valid()) + self.assertFalse(FlatpageForm(data=dict(url='/a % char/', **self.form_data)).is_valid()) + self.assertFalse(FlatpageForm(data=dict(url='/a ! char/', **self.form_data)).is_valid()) + self.assertFalse(FlatpageForm(data=dict(url='/a & char/', **self.form_data)).is_valid()) + self.assertFalse(FlatpageForm(data=dict(url='/a ? char/', **self.form_data)).is_valid()) + + def test_flatpage_requires_leading_slash(self): + form = FlatpageForm(data=dict(url='no_leading_slash/', **self.form_data)) + with translation.override('en'): + self.assertFalse(form.is_valid()) + self.assertEqual(form.errors['url'], ["URL is missing a leading slash."]) + + @override_settings(APPEND_SLASH=True, + MIDDLEWARE_CLASSES=('django.middleware.common.CommonMiddleware',)) + def test_flatpage_requires_trailing_slash_with_append_slash(self): + form = FlatpageForm(data=dict(url='/no_trailing_slash', **self.form_data)) + with translation.override('en'): + self.assertFalse(form.is_valid()) + self.assertEqual(form.errors['url'], ["URL is missing a trailing slash."]) + + @override_settings(APPEND_SLASH=False, + MIDDLEWARE_CLASSES=('django.middleware.common.CommonMiddleware',)) + def test_flatpage_doesnt_requires_trailing_slash_without_append_slash(self): + form = FlatpageForm(data=dict(url='/no_trailing_slash', **self.form_data)) + self.assertTrue(form.is_valid()) + + def test_flatpage_admin_form_url_uniqueness_validation(self): + "The flatpage admin form correctly enforces url uniqueness among flatpages of the same site" + data = dict(url='/myflatpage1/', **self.form_data) + + FlatpageForm(data=data).save() + + f = FlatpageForm(data=data) + + with translation.override('en'): + self.assertFalse(f.is_valid()) + + self.assertEqual( + f.errors, + {'__all__': ['Flatpage with url /myflatpage1/ already exists for site example.com']}) + + def test_flatpage_admin_form_edit(self): + """ + Existing flatpages can be edited in the admin form without triggering + the url-uniqueness validation. + + """ + existing = FlatPage.objects.create( + url="/myflatpage1/", title="Some page", content="The content") + existing.sites.add(settings.SITE_ID) + + data = dict(url='/myflatpage1/', **self.form_data) + + f = FlatpageForm(data=data, instance=existing) + + self.assertTrue(f.is_valid(), f.errors) + + updated = f.save() + + self.assertEqual(updated.title, "A test page") + + def test_flatpage_nosites(self): + data = dict(url='/myflatpage1/', **self.form_data) + data.update({'sites': ''}) + + f = FlatpageForm(data=data) + + self.assertFalse(f.is_valid()) + + self.assertEqual( + f.errors, + {'sites': [translation.ugettext('This field is required.')]}) + diff --git a/lib/python2.7/site-packages/django/contrib/flatpages/tests/test_middleware.py b/lib/python2.7/site-packages/django/contrib/flatpages/tests/test_middleware.py new file mode 100644 index 0000000..1ad8fa9 --- /dev/null +++ b/lib/python2.7/site-packages/django/contrib/flatpages/tests/test_middleware.py @@ -0,0 +1,158 @@ +import os +from django.conf import settings +from django.contrib.auth.models import User +from django.contrib.auth.tests.utils import skipIfCustomUser +from django.contrib.flatpages.models import FlatPage +from django.test import TestCase +from django.test.utils import override_settings + + +@override_settings( + LOGIN_URL='/accounts/login/', + MIDDLEWARE_CLASSES=( + 'django.middleware.common.CommonMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware', + ), + TEMPLATE_DIRS=( + os.path.join(os.path.dirname(__file__), 'templates'), + ), + SITE_ID=1, +) +class FlatpageMiddlewareTests(TestCase): + fixtures = ['sample_flatpages', 'example_site'] + urls = 'django.contrib.flatpages.tests.urls' + + def test_view_flatpage(self): + "A flatpage can be served through a view, even when the middleware is in use" + response = self.client.get('/flatpage_root/flatpage/') + self.assertEqual(response.status_code, 200) + self.assertContains(response, "

Isn't it flat!

") + + def test_view_non_existent_flatpage(self): + "A non-existent flatpage raises 404 when served through a view, even when the middleware is in use" + response = self.client.get('/flatpage_root/no_such_flatpage/') + self.assertEqual(response.status_code, 404) + + @skipIfCustomUser + def test_view_authenticated_flatpage(self): + "A flatpage served through a view can require authentication" + response = self.client.get('/flatpage_root/sekrit/') + self.assertRedirects(response, '/accounts/login/?next=/flatpage_root/sekrit/') + User.objects.create_user('testuser', 'test@example.com', 's3krit') + self.client.login(username='testuser',password='s3krit') + response = self.client.get('/flatpage_root/sekrit/') + self.assertEqual(response.status_code, 200) + self.assertContains(response, "

Isn't it sekrit!

") + + def test_fallback_flatpage(self): + "A flatpage can be served by the fallback middlware" + response = self.client.get('/flatpage/') + self.assertEqual(response.status_code, 200) + self.assertContains(response, "

Isn't it flat!

") + + def test_fallback_non_existent_flatpage(self): + "A non-existent flatpage raises a 404 when served by the fallback middlware" + response = self.client.get('/no_such_flatpage/') + self.assertEqual(response.status_code, 404) + + @skipIfCustomUser + def test_fallback_authenticated_flatpage(self): + "A flatpage served by the middleware can require authentication" + response = self.client.get('/sekrit/') + self.assertRedirects(response, '/accounts/login/?next=/sekrit/') + User.objects.create_user('testuser', 'test@example.com', 's3krit') + self.client.login(username='testuser',password='s3krit') + response = self.client.get('/sekrit/') + self.assertEqual(response.status_code, 200) + self.assertContains(response, "

Isn't it sekrit!

") + + def test_fallback_flatpage_special_chars(self): + "A flatpage with special chars in the URL can be served by the fallback middleware" + fp = FlatPage.objects.create( + url="/some.very_special~chars-here/", + title="A very special page", + content="Isn't it special!", + enable_comments=False, + registration_required=False, + ) + fp.sites.add(settings.SITE_ID) + + response = self.client.get('/some.very_special~chars-here/') + self.assertEqual(response.status_code, 200) + self.assertContains(response, "

Isn't it special!

") + + +@override_settings( + APPEND_SLASH = True, + LOGIN_URL='/accounts/login/', + MIDDLEWARE_CLASSES=( + 'django.middleware.common.CommonMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware', + ), + TEMPLATE_DIRS=( + os.path.join(os.path.dirname(__file__), 'templates'), + ), + SITE_ID=1, +) +class FlatpageMiddlewareAppendSlashTests(TestCase): + fixtures = ['sample_flatpages', 'example_site'] + urls = 'django.contrib.flatpages.tests.urls' + + def test_redirect_view_flatpage(self): + "A flatpage can be served through a view and should add a slash" + response = self.client.get('/flatpage_root/flatpage') + self.assertRedirects(response, '/flatpage_root/flatpage/', status_code=301) + + def test_redirect_view_non_existent_flatpage(self): + "A non-existent flatpage raises 404 when served through a view and should not add a slash" + response = self.client.get('/flatpage_root/no_such_flatpage') + self.assertEqual(response.status_code, 404) + + def test_redirect_fallback_flatpage(self): + "A flatpage can be served by the fallback middlware and should add a slash" + response = self.client.get('/flatpage') + self.assertRedirects(response, '/flatpage/', status_code=301) + + def test_redirect_fallback_non_existent_flatpage(self): + "A non-existent flatpage raises a 404 when served by the fallback middlware and should not add a slash" + response = self.client.get('/no_such_flatpage') + self.assertEqual(response.status_code, 404) + + def test_redirect_fallback_flatpage_special_chars(self): + "A flatpage with special chars in the URL can be served by the fallback middleware and should add a slash" + fp = FlatPage.objects.create( + url="/some.very_special~chars-here/", + title="A very special page", + content="Isn't it special!", + enable_comments=False, + registration_required=False, + ) + fp.sites.add(settings.SITE_ID) + + response = self.client.get('/some.very_special~chars-here') + self.assertRedirects(response, '/some.very_special~chars-here/', status_code=301) + + def test_redirect_fallback_flatpage_root(self): + "A flatpage at / should not cause a redirect loop when APPEND_SLASH is set" + fp = FlatPage.objects.create( + url="/", + title="Root", + content="Root", + enable_comments=False, + registration_required=False, + ) + fp.sites.add(settings.SITE_ID) + + response = self.client.get('/') + self.assertEqual(response.status_code, 200) + self.assertContains(response, "

Root

") + + diff --git a/lib/python2.7/site-packages/django/contrib/flatpages/tests/test_models.py b/lib/python2.7/site-packages/django/contrib/flatpages/tests/test_models.py new file mode 100644 index 0000000..af12c42 --- /dev/null +++ b/lib/python2.7/site-packages/django/contrib/flatpages/tests/test_models.py @@ -0,0 +1,22 @@ +# coding: utf-8 + +from __future__ import unicode_literals + +from django.core.urlresolvers import set_script_prefix, clear_script_prefix +from django.contrib.flatpages.models import FlatPage +from django.test import TestCase + + +class FlatpageModelTests(TestCase): + + def test_get_absolute_url_urlencodes(self): + pf = FlatPage(title="Café!", url='/café/') + self.assertEqual(pf.get_absolute_url(), '/caf%C3%A9/') + + def test_get_absolute_url_honors_script_prefix(self): + pf = FlatPage(title="Tea!", url='/tea/') + set_script_prefix('/beverages/') + try: + self.assertEqual(pf.get_absolute_url(), '/beverages/tea/') + finally: + clear_script_prefix() diff --git a/lib/python2.7/site-packages/django/contrib/flatpages/tests/test_templatetags.py b/lib/python2.7/site-packages/django/contrib/flatpages/tests/test_templatetags.py new file mode 100644 index 0000000..23fa8fa --- /dev/null +++ b/lib/python2.7/site-packages/django/contrib/flatpages/tests/test_templatetags.py @@ -0,0 +1,136 @@ +import os +from django.contrib.auth.models import AnonymousUser, User +from django.contrib.auth.tests.utils import skipIfCustomUser +from django.template import Template, Context, TemplateSyntaxError +from django.test import TestCase +from django.test.utils import override_settings + + +@override_settings( + MIDDLEWARE_CLASSES=( + 'django.middleware.common.CommonMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware', + ), + TEMPLATE_DIRS=( + os.path.join(os.path.dirname(__file__), 'templates'), + ), + SITE_ID=1, +) +class FlatpageTemplateTagTests(TestCase): + fixtures = ['sample_flatpages'] + urls = 'django.contrib.flatpages.tests.urls' + + def test_get_flatpages_tag(self): + "The flatpage template tag retrives unregistered prefixed flatpages by default" + out = Template( + "{% load flatpages %}" + "{% get_flatpages as flatpages %}" + "{% for page in flatpages %}" + "{{ page.title }}," + "{% endfor %}" + ).render(Context()) + self.assertEqual(out, "A Flatpage,A Nested Flatpage,") + + def test_get_flatpages_tag_for_anon_user(self): + "The flatpage template tag retrives unregistered flatpages for an anonymous user" + out = Template( + "{% load flatpages %}" + "{% get_flatpages for anonuser as flatpages %}" + "{% for page in flatpages %}" + "{{ page.title }}," + "{% endfor %}" + ).render(Context({ + 'anonuser': AnonymousUser() + })) + self.assertEqual(out, "A Flatpage,A Nested Flatpage,") + + @skipIfCustomUser + def test_get_flatpages_tag_for_user(self): + "The flatpage template tag retrives all flatpages for an authenticated user" + me = User.objects.create_user('testuser', 'test@example.com', 's3krit') + out = Template( + "{% load flatpages %}" + "{% get_flatpages for me as flatpages %}" + "{% for page in flatpages %}" + "{{ page.title }}," + "{% endfor %}" + ).render(Context({ + 'me': me + })) + self.assertEqual(out, "A Flatpage,A Nested Flatpage,Sekrit Nested Flatpage,Sekrit Flatpage,") + + def test_get_flatpages_with_prefix(self): + "The flatpage template tag retrives unregistered prefixed flatpages by default" + out = Template( + "{% load flatpages %}" + "{% get_flatpages '/location/' as location_flatpages %}" + "{% for page in location_flatpages %}" + "{{ page.title }}," + "{% endfor %}" + ).render(Context()) + self.assertEqual(out, "A Nested Flatpage,") + + def test_get_flatpages_with_prefix_for_anon_user(self): + "The flatpage template tag retrives unregistered prefixed flatpages for an anonymous user" + out = Template( + "{% load flatpages %}" + "{% get_flatpages '/location/' for anonuser as location_flatpages %}" + "{% for page in location_flatpages %}" + "{{ page.title }}," + "{% endfor %}" + ).render(Context({ + 'anonuser': AnonymousUser() + })) + self.assertEqual(out, "A Nested Flatpage,") + + @skipIfCustomUser + def test_get_flatpages_with_prefix_for_user(self): + "The flatpage template tag retrive prefixed flatpages for an authenticated user" + me = User.objects.create_user('testuser', 'test@example.com', 's3krit') + out = Template( + "{% load flatpages %}" + "{% get_flatpages '/location/' for me as location_flatpages %}" + "{% for page in location_flatpages %}" + "{{ page.title }}," + "{% endfor %}" + ).render(Context({ + 'me': me + })) + self.assertEqual(out, "A Nested Flatpage,Sekrit Nested Flatpage,") + + def test_get_flatpages_with_variable_prefix(self): + "The prefix for the flatpage template tag can be a template variable" + out = Template( + "{% load flatpages %}" + "{% get_flatpages location_prefix as location_flatpages %}" + "{% for page in location_flatpages %}" + "{{ page.title }}," + "{% endfor %}" + ).render(Context({ + 'location_prefix': '/location/' + })) + self.assertEqual(out, "A Nested Flatpage,") + + def test_parsing_errors(self): + "There are various ways that the flatpages template tag won't parse" + render = lambda t: Template(t).render(Context()) + + self.assertRaises(TemplateSyntaxError, render, + "{% load flatpages %}{% get_flatpages %}") + self.assertRaises(TemplateSyntaxError, render, + "{% load flatpages %}{% get_flatpages as %}") + self.assertRaises(TemplateSyntaxError, render, + "{% load flatpages %}{% get_flatpages cheesecake flatpages %}") + self.assertRaises(TemplateSyntaxError, render, + "{% load flatpages %}{% get_flatpages as flatpages asdf%}") + self.assertRaises(TemplateSyntaxError, render, + "{% load flatpages %}{% get_flatpages cheesecake user as flatpages %}") + self.assertRaises(TemplateSyntaxError, render, + "{% load flatpages %}{% get_flatpages for user as flatpages asdf%}") + self.assertRaises(TemplateSyntaxError, render, + "{% load flatpages %}{% get_flatpages prefix for user as flatpages asdf%}") + diff --git a/lib/python2.7/site-packages/django/contrib/flatpages/tests/test_views.py b/lib/python2.7/site-packages/django/contrib/flatpages/tests/test_views.py new file mode 100644 index 0000000..0448b21 --- /dev/null +++ b/lib/python2.7/site-packages/django/contrib/flatpages/tests/test_views.py @@ -0,0 +1,129 @@ +import os +from django.conf import settings +from django.contrib.auth.models import User +from django.contrib.auth.tests.utils import skipIfCustomUser +from django.contrib.flatpages.models import FlatPage +from django.test import TestCase +from django.test.utils import override_settings + + +@override_settings( + LOGIN_URL='/accounts/login/', + MIDDLEWARE_CLASSES=( + 'django.middleware.common.CommonMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + # no 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware' + ), + TEMPLATE_DIRS=( + os.path.join(os.path.dirname(__file__), 'templates'), + ), + SITE_ID=1, +) +class FlatpageViewTests(TestCase): + fixtures = ['sample_flatpages', 'example_site'] + urls = 'django.contrib.flatpages.tests.urls' + + def test_view_flatpage(self): + "A flatpage can be served through a view" + response = self.client.get('/flatpage_root/flatpage/') + self.assertEqual(response.status_code, 200) + self.assertContains(response, "

Isn't it flat!

") + + def test_view_non_existent_flatpage(self): + "A non-existent flatpage raises 404 when served through a view" + response = self.client.get('/flatpage_root/no_such_flatpage/') + self.assertEqual(response.status_code, 404) + + @skipIfCustomUser + def test_view_authenticated_flatpage(self): + "A flatpage served through a view can require authentication" + response = self.client.get('/flatpage_root/sekrit/') + self.assertRedirects(response, '/accounts/login/?next=/flatpage_root/sekrit/') + User.objects.create_user('testuser', 'test@example.com', 's3krit') + self.client.login(username='testuser',password='s3krit') + response = self.client.get('/flatpage_root/sekrit/') + self.assertEqual(response.status_code, 200) + self.assertContains(response, "

Isn't it sekrit!

") + + def test_fallback_flatpage(self): + "A fallback flatpage won't be served if the middleware is disabled" + response = self.client.get('/flatpage/') + self.assertEqual(response.status_code, 404) + + def test_fallback_non_existent_flatpage(self): + "A non-existent flatpage won't be served if the fallback middlware is disabled" + response = self.client.get('/no_such_flatpage/') + self.assertEqual(response.status_code, 404) + + def test_view_flatpage_special_chars(self): + "A flatpage with special chars in the URL can be served through a view" + fp = FlatPage.objects.create( + url="/some.very_special~chars-here/", + title="A very special page", + content="Isn't it special!", + enable_comments=False, + registration_required=False, + ) + fp.sites.add(settings.SITE_ID) + + response = self.client.get('/flatpage_root/some.very_special~chars-here/') + self.assertEqual(response.status_code, 200) + self.assertContains(response, "

Isn't it special!

") + + +@override_settings( + APPEND_SLASH = True, + LOGIN_URL='/accounts/login/', + MIDDLEWARE_CLASSES=( + 'django.middleware.common.CommonMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + # no 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware' + ), + TEMPLATE_DIRS=( + os.path.join(os.path.dirname(__file__), 'templates'), + ), + SITE_ID=1, +) +class FlatpageViewAppendSlashTests(TestCase): + fixtures = ['sample_flatpages', 'example_site'] + urls = 'django.contrib.flatpages.tests.urls' + + def test_redirect_view_flatpage(self): + "A flatpage can be served through a view and should add a slash" + response = self.client.get('/flatpage_root/flatpage') + self.assertRedirects(response, '/flatpage_root/flatpage/', status_code=301) + + def test_redirect_view_non_existent_flatpage(self): + "A non-existent flatpage raises 404 when served through a view and should not add a slash" + response = self.client.get('/flatpage_root/no_such_flatpage') + self.assertEqual(response.status_code, 404) + + def test_redirect_fallback_flatpage(self): + "A fallback flatpage won't be served if the middleware is disabled and should not add a slash" + response = self.client.get('/flatpage') + self.assertEqual(response.status_code, 404) + + def test_redirect_fallback_non_existent_flatpage(self): + "A non-existent flatpage won't be served if the fallback middlware is disabled and should not add a slash" + response = self.client.get('/no_such_flatpage') + self.assertEqual(response.status_code, 404) + + def test_redirect_view_flatpage_special_chars(self): + "A flatpage with special chars in the URL can be served through a view and should add a slash" + fp = FlatPage.objects.create( + url="/some.very_special~chars-here/", + title="A very special page", + content="Isn't it special!", + enable_comments=False, + registration_required=False, + ) + fp.sites.add(settings.SITE_ID) + + response = self.client.get('/flatpage_root/some.very_special~chars-here') + self.assertRedirects(response, '/flatpage_root/some.very_special~chars-here/', status_code=301) diff --git a/lib/python2.7/site-packages/django/contrib/flatpages/tests/urls.py b/lib/python2.7/site-packages/django/contrib/flatpages/tests/urls.py new file mode 100644 index 0000000..e0e7a07 --- /dev/null +++ b/lib/python2.7/site-packages/django/contrib/flatpages/tests/urls.py @@ -0,0 +1,8 @@ +from django.conf.urls import patterns, include + +# special urls for flatpage test cases +urlpatterns = patterns('', + (r'^flatpage_root', include('django.contrib.flatpages.urls')), + (r'^accounts/', include('django.contrib.auth.urls')), +) + -- cgit