summaryrefslogtreecommitdiff
path: root/tests/redirects_tests
diff options
context:
space:
mode:
authorAnton Samarchyan <anton.samarchyan@savoirfairelinux.com>2017-03-17 15:34:04 -0400
committerTim Graham <timograham@gmail.com>2017-06-02 20:10:27 -0400
commit0c1355e9bb50868c5a5980b975d8f9a76b190f0b (patch)
treebb8c68f70aec0f8263e9cf285cc67ba6459c7c1e /tests/redirects_tests
parent2b53c8377dcb7270d95db0b3ea8b2cb28550c5a8 (diff)
downloaddjango-0c1355e9bb50868c5a5980b975d8f9a76b190f0b.tar.gz
Completed test coverage for RedirectFallbackMiddleware.
Diffstat (limited to 'tests/redirects_tests')
-rw-r--r--tests/redirects_tests/tests.py16
-rw-r--r--tests/redirects_tests/urls.py6
2 files changed, 21 insertions, 1 deletions
diff --git a/tests/redirects_tests/tests.py b/tests/redirects_tests/tests.py
index cfee12e5d2..5bce11d800 100644
--- a/tests/redirects_tests/tests.py
+++ b/tests/redirects_tests/tests.py
@@ -8,7 +8,7 @@ from django.test import TestCase, modify_settings, override_settings
@modify_settings(MIDDLEWARE={'append': 'django.contrib.redirects.middleware.RedirectFallbackMiddleware'})
-@override_settings(APPEND_SLASH=False, SITE_ID=1)
+@override_settings(APPEND_SLASH=False, ROOT_URLCONF='redirects_tests.urls', SITE_ID=1)
class RedirectTests(TestCase):
def setUp(self):
@@ -35,6 +35,20 @@ class RedirectTests(TestCase):
response = self.client.get('/initial?foo')
self.assertRedirects(response, '/new_target/', status_code=301, target_status_code=404)
+ @override_settings(APPEND_SLASH=True)
+ def test_redirect_not_found_with_append_slash(self):
+ """
+ Exercise the second Redirect.DoesNotExist branch in
+ RedirectFallbackMiddleware.
+ """
+ response = self.client.get('/test')
+ self.assertEqual(response.status_code, 404)
+
+ def test_redirect_shortcircuits_non_404_response(self):
+ """RedirectFallbackMiddleware short-circuits on non-404 requests."""
+ response = self.client.get('/')
+ self.assertEqual(response.status_code, 200)
+
def test_response_gone(self):
"""When the redirect target is '', return a 410"""
Redirect.objects.create(site=self.site, old_path='/initial', new_path='')
diff --git a/tests/redirects_tests/urls.py b/tests/redirects_tests/urls.py
new file mode 100644
index 0000000000..965f0b8bfa
--- /dev/null
+++ b/tests/redirects_tests/urls.py
@@ -0,0 +1,6 @@
+from django.conf.urls import url
+from django.http import HttpResponse
+
+urlpatterns = [
+ url(r'^$', lambda req: HttpResponse('OK')),
+]