def test_redirect_stripping_query_string(self): # Create a redirect which includes a query string redirect_with_query_string = models.Redirect( old_path='/redirectme?foo=Bar', redirect_link='/with-query-string-only') redirect_with_query_string.save() # ... and another redirect without the query string redirect_without_query_string = models.Redirect( old_path='/redirectme', redirect_link='/without-query-string') redirect_without_query_string.save() # Navigate to the redirect with the query string r_matching_qs = self.client.get('/redirectme/?foo=Bar') self.assertRedirects(r_matching_qs, '/with-query-string-only', status_code=301, fetch_redirect_response=False) # Navigate to the redirect with a different query string # This should strip out the query string and match redirect_without_query_string r_no_qs = self.client.get('/redirectme/?utm_source=irrelevant') self.assertRedirects(r_no_qs, '/without-query-string', status_code=301, fetch_redirect_response=False)
def test_redirect_stripping_query_string(self): # Get a client c = Client() # Create a redirect which includes a query string redirect_with_query_string = models.Redirect( old_path='/redirectme?foo=Bar', redirect_link='/with-query-string-only') redirect_with_query_string.save() # ... and another redirect without the query string redirect_without_query_string = models.Redirect( old_path='/redirectme', redirect_link='/without-query-string') redirect_without_query_string.save() # Navigate to the redirect with the query string r_matching_qs = c.get('/redirectme/?foo=Bar') self.assertEqual(r_matching_qs.status_code, 301) self.assertTrue(r_matching_qs.has_header('Location')) self.assertEqual(r_matching_qs['Location'][-23:], '/with-query-string-only') # Navigate to the redirect with a different query string # This should strip out the query string and match redirect_without_query_string r_no_qs = c.get('/redirectme/?utm_source=irrelevant') self.assertEqual(r_no_qs.status_code, 301) self.assertTrue(r_no_qs.has_header('Location')) self.assertEqual(r_no_qs['Location'][-21:], '/without-query-string')
def setUp(self): # Create a redirect to edit self.redirect = models.Redirect(old_path='/test', redirect_link='http://www.test.com/') self.redirect.save() # Login self.login()
def add(request): theredirect = models.Redirect() form_class = REDIRECT_EDIT_HANDLER.get_form_class(models.Redirect) if request.POST: form = form_class(request.POST, request.FILES) if form.is_valid(): theredirect = form.save(commit=False) theredirect.site = request.site theredirect.save() messages.success(request, _("Redirect '{0}' added.").format(theredirect.title), buttons=[ messages.button(reverse('wagtailredirects_edit_redirect', args=(theredirect.id,)), _('Edit')) ]) return redirect('wagtailredirects_index') else: messages.error(request, _("The redirect could not be created due to errors.")) edit_handler = REDIRECT_EDIT_HANDLER(instance=theredirect, form=form) else: form = form_class() edit_handler = REDIRECT_EDIT_HANDLER(instance=theredirect, form=form) return render(request, "wagtailredirects/add.html", { 'edit_handler': edit_handler, })
def test_temporary_redirect(self): # Create a redirect redirect = models.Redirect(old_path='/redirectme', redirect_link='/redirectto', is_permanent=False) redirect.save() # Navigate to it response = self.client.get('/redirectme/') # Check that we were redirected temporarily self.assertRedirects(response, '/redirectto', status_code=302, fetch_redirect_response=False)
def test_basic_redirect(self): # Create a redirect redirect = models.Redirect(old_path='/redirectme', redirect_link='/redirectto') redirect.save() # Navigate to it response = self.client.get('/redirectme/') # Check that we were redirected self.assertRedirects(response, '/redirectto', status_code=301, fetch_redirect_response=False)
def test_temporary_redirect(self): # Create a redirect redirect = models.Redirect(old_path='/redirectme', redirect_link='/redirectto', is_permanent=False) redirect.save() # Navigate to it r = self.client.get('/redirectme/') # Check that we were redirected temporarily self.assertEqual(r.status_code, 302) self.assertTrue(r.has_header('Location'))
def test_basic_redirect(self): # Create a redirect redirect = models.Redirect(old_path='/redirectme', redirect_link='/redirectto') redirect.save() # Navigate to it r = self.client.get('/redirectme/') # Check that we were redirected self.assertEqual(r.status_code, 301) self.assertTrue(r.has_header('Location'))
def test_redirect_with_encoded_url(self): redirect = models.Redirect(old_path='/t%C3%A9sting-%C3%BCnicode', redirect_link='/redirectto') redirect.save() # Navigate to it response = self.client.get('/t%C3%A9sting-%C3%BCnicode/') self.assertRedirects(response, '/redirectto', status_code=301, fetch_redirect_response=False)
def test_basic_redirect(self): # Get a client c = Client() # Create a redirect redirect = models.Redirect(old_path='/redirectme', redirect_link='/redirectto', site=get_default_site()) redirect.save() # Navigate to it r = c.get('/redirectme/', HTTP_HOST=get_default_host()) # Check that we were redirected self.assertEqual(r.status_code, 301) self.assertTrue(r.has_header('Location'))