summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/regressiontests/urlpatterns_reverse/tests.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/regressiontests/urlpatterns_reverse/tests.py b/tests/regressiontests/urlpatterns_reverse/tests.py
index aecfdfc6c5..b7ef0e5b9b 100644
--- a/tests/regressiontests/urlpatterns_reverse/tests.py
+++ b/tests/regressiontests/urlpatterns_reverse/tests.py
@@ -3,6 +3,8 @@ Unit tests for reverse URL lookups.
"""
from django.core.urlresolvers import reverse, NoReverseMatch
+from django.http import HttpResponseRedirect, HttpResponsePermanentRedirect
+from django.shortcuts import redirect
from django.test import TestCase
test_data = (
@@ -97,3 +99,34 @@ class URLPatternReverse(TestCase):
else:
self.assertEquals(got, expected)
+class ReverseShortcutTests(TestCase):
+ urls = 'regressiontests.urlpatterns_reverse.urls'
+
+ def test_redirect_to_object(self):
+ # We don't really need a model; just something with a get_absolute_url
+ class FakeObj(object):
+ def get_absolute_url(self):
+ return "/hi-there/"
+
+ res = redirect(FakeObj())
+ self.assert_(isinstance(res, HttpResponseRedirect))
+ self.assertEqual(res['Location'], '/hi-there/')
+
+ res = redirect(FakeObj(), permanent=True)
+ self.assert_(isinstance(res, HttpResponsePermanentRedirect))
+ self.assertEqual(res['Location'], '/hi-there/')
+
+ def test_redirect_to_view_name(self):
+ res = redirect('hardcoded2')
+ self.assertEqual(res['Location'], '/hardcoded/doc.pdf')
+ res = redirect('places', 1)
+ self.assertEqual(res['Location'], '/places/1/')
+ res = redirect('headlines', year='2008', month='02', day='17')
+ self.assertEqual(res['Location'], '/headlines/2008.02.17/')
+ self.assertRaises(NoReverseMatch, redirect, 'not-a-view')
+
+ def test_redirect_to_url(self):
+ res = redirect('/foo/')
+ self.assertEqual(res['Location'], '/foo/')
+ res = redirect('http://example.com/')
+ self.assertEqual(res['Location'], 'http://example.com/') \ No newline at end of file