def test_redirect_request_partial_gone(self): # Create a redirect request = self.factory.get('/test/123/') redirect = Redirect(from_url='/test/', to_url='', is_partial=True, site=get_current_site(request), http_status=301) redirect.save() new_response = self.run_redirect(request) self.assertEqual(new_response.status_code, 410)
def test_redirect_request_gone(self): # Create a redirect request = self.factory.get('/test/123/') redirect = Redirect(from_url='test/(?P<pk>\d+)/', to_url='', site=get_current_site(request), uses_regex=True) redirect.save() new_response = self.run_redirect(request) self.assertEqual(new_response.status_code, 410)
def test_redirect_request_partial_prepend_slash(self): # Create a redirect request = self.factory.get('/test/123/') redirect = Redirect(from_url='/test/', to_url='partialtest/', is_partial=True, site=get_current_site(request), http_status=302) redirect.save() new_response = self.run_redirect(request) self.assertEqual(new_response.status_code, 302) assert '/partialtest/123/' in new_response.serialize_headers()
def test_redirect_request_temporary(self): # Create a redirect request = self.factory.get('/test/123/') redirect = Redirect(from_url='test/(?P<pk>\d+)/', to_url='somethingelse/(?P<pk>\d+)/', site=get_current_site(request), http_status=302, uses_regex=True) redirect.save() new_response = self.run_redirect(request) self.assertEqual(new_response.status_code, 302) assert 'somethingelse' in new_response.serialize_headers()
def handle(self, *args, **options): with transaction.commit_on_success(): count = 0 for redirect in DjangoRedirect.objects.all(): try: Redirect.objects.get(from_url=redirect.old_path) print("Redirect from {} already exists...skipping".format(redirect.old_path)) except ObjectDoesNotExist: new_redirect = Redirect(from_url=redirect.old_path, to_url=redirect.new_path, site=redirect.site, http_status=301) new_redirect.save() count += 1 print("Copied {} redirects into robust redirects.".format(count))