大多数视图
对于大多数视图,用户需要登录。测试中最方便的方法是使用客户端发出POST请求并将其发送到登录视图。不是每次都写,而是写一个类,使用class方法来完成,并使用固件将其传递给每个被测试的客户端。
class AuthActions(object):
def __init__(self, client):
self._client = client
def login(self, username='test', pasord='test'):
return self._client.post(
'/auth/login',
data={
'username': username, 'password': password}
)
def logout(self):
return self._client.get('/auth/logout')
@pytest.fixture
def auth(client):
return AuthActions(client)
通过auth固件,您可以调用authLogin()作为测试用户登录。用户数据已写入应用固件。
注册视图应在GET请求时成功呈现。在POST请求中,当表单数据合法时,视图应重定向到登录URL,并且用户的数据已保存在数据库中。如果数据非法,则应显示错误消息。
import pytest
from flask import g, session
from flaskr.db import get_db
def test_register(client, app):
assert client.get('/auth/register').status_code ==