我有一套固定装置:
@pytest.fixture
def user()
# A Django user
@pytest.fixture
def browser()
# Splinter browser
@pytest.fixture
def logged_user(live_server, browser, user)
browser.visit(url)
browser.fill('username', user.username)
browser.fill('password', 'abc')
browser.find_by_id('login').first.click()
return user
当我运行使用它们的测试时,我得到了
HttpResponseError: 403 - Forbidden
浏览器 (firefox) 执行四个操作:
- 访问登录页面(成功)
- 填写登录表单(成功)
- 浏览器自动重定向到索引页面(成功,用户通过身份验证)
- 浏览器访问网站的另一个页面:失败
我的测试主体基本上如下:
@pytest.mark.django_db(transaction=True)
@pytest.mark.selenium
def test_children_fed_report(live_server, browser, logged_user, page_data):
url = reverse('app.myview')
browser.visit(live_server.url + url)
Auth 上下文处理器用正确的值(登录用户)填充用户变量,但最后一次调用除外,它用匿名用户填充。
这两个答案(第一个,第二个)都无法帮助我:auth_login被调用并且用户在最后一步之前真正通过了身份验证。
提前感谢您的任何建议!