Flask pytest测试后清除烧瓶会话闪存消息

Flask pytest测试后清除烧瓶会话闪存消息,flask,Flask,我有一个烧瓶站点,我正在使用pytest进行测试。我想测试一些视图是否正确设置了flask.flash消息。我可以做到这一点,但flash消息在测试之间持续存在,我希望它们能够清除 我有一个test\u客户端fixture: @pytest.fixture(scope=“session”) def app(): #create_app()返回已配置的烧瓶应用程序: 应用程序=创建应用程序(“测试”) 使用app.test\u request\u context(): 收益应用程序 @pytest

我有一个烧瓶站点,我正在使用pytest进行测试。我想测试一些视图是否正确设置了flask.flash消息。我可以做到这一点,但flash消息在测试之间持续存在,我希望它们能够清除

我有一个
test\u客户端
fixture:

@pytest.fixture(scope=“session”)
def app():
#create_app()返回已配置的烧瓶应用程序:
应用程序=创建应用程序(“测试”)
使用app.test\u request\u context():
收益应用程序
@pytest.fixture(scope=“session”)
def测试_客户端(应用程序):
将app.test_client()作为c:
产量c
我有这样的测试:

来自flask导入会话的

def测试\我的\重定向\视图(测试\客户端):
“它应该重定向并设置正确的闪存消息”
response=test\u client.get(“/my/path”,follow\u redirects=False)
assert response.status_code==302
断言响应。位置==”http://localhost/a/different/url"
在会话中断言“\u闪烁”
断言len(会话[“_flash”])==1
断言会话[“\u闪烁”][0][0]=“警告”
断言会话[“\u闪烁”][0][1]=“我的错误消息”
正如我所说,假设我的视图设置了这个flash消息,并且重定向正确,那么这个测试就通过了。但随后的类似测试将失败,因为
len(会话[“\u flash”])
将是
2
,因为它包含来自两个测试视图的消息

我在每次测试结束时都尝试过这样做,但没有明显效果:

del会话[“_闪烁”][0]

这不是一个理想的答案,因为它不能确保测试视图只设置一条flash消息,但现在我将用以下内容替换与flash消息相关的
断言
行:

在会话[“\u闪烁”]中断言(“警告”、“我的错误消息”)

这不是一个理想的答案,因为它不能确保测试视图只设置一条flash消息,但现在我将用以下内容替换与flash消息相关的
断言
行:

在会话[“\u闪烁”]中断言(“警告”、“我的错误消息”)