Django : Testing if the page has redirected to the desired url

后端 未结 4 1923
无人及你
无人及你 2020-12-03 12:58

In my django app, I have an authentication system. So, If I do not log in and try to access some profile\'s personal info, I get redirected to a login page.

Now, I

4条回答
  •  执念已碎
    2020-12-03 13:54

    Django 1.4:

    https://docs.djangoproject.com/en/1.4/topics/testing/#django.test.TestCase.assertRedirects

    Django 2.0:

    https://docs.djangoproject.com/en/2.0/topics/testing/tools/#django.test.SimpleTestCase.assertRedirects

    SimpleTestCase.assertRedirects(response, expected_url, status_code=302, target_status_code=200, msg_prefix='', fetch_redirect_response=True)

    Asserts that the response returned a status_code redirect status, redirected to expected_url (including any GET data), and that the final page was received with target_status_code.

    If your request used the follow argument, the expected_url and target_status_code will be the url and status code for the final point of the redirect chain.

    If fetch_redirect_response is False, the final page won’t be loaded. Since the test client can’t fetch external URLs, this is particularly useful if expected_url isn’t part of your Django app.

    Scheme is handled correctly when making comparisons between two URLs. If there isn’t any scheme specified in the location where we are redirected to, the original request’s scheme is used. If present, the scheme in expected_url is the one used to make the comparisons to.

提交回复
热议问题