0

我有一套固定装置:

@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被调用并且用户在最后一步之前真正通过了身份验证。

提前感谢您的任何建议!

4

0 回答 0