我进行了非常基本的测试,检查未登录的用户是否可以连接到我的 websocket,如下所示:
@pytest.mark.asyncio
async def test_unauthenticated_cant_connect_to_websocket(unauthenticated_websocket_communicator: WebsocketCommunicator):
connected, subprotocol = await unauthenticated_websocket_communicator.connect()
assert subprotocol == 3000 # subprotocol 3000 is Unauthorised
assert connected is False
当我使用 pytest -k test_unauthenticated_cant_connect_to_websocket
但是当我从 cli 使用 pytest
时失败
我的消费者连接函数如下:
async def websocket_connect(self, event: dict) -> None:
if self.scope["user"].is_anonymous:
await self.close(code=3000)
else:
await self.accept()
我有许多其他异步测试,代码类型相似,但它们都通过了。
最佳答案
我通过向测试添加 @pytest.mark.django_db
装饰器解决了这个问题。
关于python - Pytest 测试在与其他测试一起运行时失败,但在单独运行时通过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73483611/