/tests/regressiontests/views/tests/generic/simple.py

https://code.google.com/p/mango-py/ · Python · 38 lines · 29 code · 6 blank · 3 comment · 0 complexity · eb2ea34cf2c5bf9da4415e7cded84b15 MD5 · raw file

  1. # coding: utf-8
  2. from django.test import TestCase
  3. class RedirectToTest(TestCase):
  4. def test_redirect_to_returns_permanent_redirect(self):
  5. "simple.redirect_to returns a permanent redirect (301) by default"
  6. response = self.client.get('/views/simple/redirect_to/')
  7. self.assertEqual(response.status_code, 301)
  8. self.assertEqual('http://testserver/views/simple/target/', response['Location'])
  9. def test_redirect_to_can_return_a_temporary_redirect(self):
  10. "simple.redirect_to returns a temporary redirect (302) when explicitely asked to"
  11. response = self.client.get('/views/simple/redirect_to_temp/')
  12. self.assertEqual(response.status_code, 302)
  13. self.assertEqual('http://testserver/views/simple/target/', response['Location'])
  14. def test_redirect_to_on_empty_url_returns_gone(self):
  15. "simple.redirect_to returns resource gone (410) when given a None url"
  16. response = self.client.get('/views/simple/redirect_to_none/')
  17. self.assertEqual(response.status_code, 410)
  18. def test_redirect_to_allows_formatted_url_string(self):
  19. "simple.redirect_to uses string interpolation on target url for keyword args"
  20. response = self.client.get('/views/simple/redirect_to_arg/42/')
  21. self.assertEqual(response.status_code, 301)
  22. self.assertEqual('http://testserver/views/simple/target_arg/42/', response['Location'])
  23. def test_redirect_to_allows_query_string_to_be_passed(self):
  24. "simple.redirect_to configured with query_string=True passes on any query string"
  25. # the default is to not forward the query string
  26. response = self.client.get('/views/simple/redirect_to/?param1=foo&param2=bar')
  27. self.assertEqual(response.status_code, 301)
  28. self.assertEqual('http://testserver/views/simple/target/', response['Location'])
  29. # views configured with query_string=True however passes the query string along
  30. response = self.client.get('/views/simple/redirect_to_query/?param1=foo&param2=bar')
  31. self.assertEqual(response.status_code, 301)
  32. self.assertEqual('http://testserver/views/simple/target/?param1=foo&param2=bar', response['Location'])