我已经知道可以实现一个从SimpleTestCase
继承的类,并且可以通过以下方式测试重定向:
SimpleTestCase.assertRedirects(response, expected_url, status_code=302, target_status_code=200, host=None, msg_prefix='', fetch_redirect_response=True)
字符串
但是,我想知道使用pytest检查重定向的方法是什么:
@pytest.mark.django_db
def test_redirection_to_home_when_group_does_not_exist(create_social_user):
"""Some docstring defining what the test is checking."""
c = Client()
c.login(username='TEST_USERNAME', password='TEST_PASSWORD')
response = c.get(reverse('pledges:home_group',
kwargs={'group_id': 100}),
follow=True)
SimpleTestCase.assertRedirects(response, reverse('pledges:home'))
型
但是,我得到了以下错误:
SimpleTestCase.assertRedirects(response, reverse('pledges:home'))
型
E TypeError:assertRedirects()缺少1个必需的位置参数:'expected_url'
有没有什么方法可以使用pytest来验证Django的重定向?或者我应该使用一个从SimpleTestCase
继承的类?
3条答案
按热度按时间s8vozzvw1#
我不是pytest的Maven,所以可能不是很优雅,但你可以检查
Location
头,如字符串
eanckbw92#
这是一个示例方法,所以它永远不会像类方法那样工作。你应该能够简单地更改行:
字符串
进入:
型
也就是说,我们创建一个示例来提供一个绑定方法。
368yc8dk3#
您可以使用
pytest_django.asserts.assertRedirects
:字符串