我正在尝试测试用Django 2.2.2和Python 3编写的后端。我创建了一些graphql查询,这些查询在使用graphql Web界面进行测试时绝对有效。但是,当使用pytest和石墨烯测试客户端进行测试时,这些查询将始终无限期地挂起。我整理了一个可复制的示例,该示例实际上是基于graphene-django documentation中的代码示例。
test_example.py:
date --date="@$(echo $(($(date --date="22:53" +"%s")+900)))" +"%H:%M"
此示例的行为相同(永远存在,没有错误)。我正在使用最新的graphene-django(2.3.2)和pytest(4.6.3)。我可能还应该提到,我正在Docker容器中运行它。任何想法为什么会发生这种情况?这是graphene-django库中的错误吗?
答案 0 :(得分:0)
在浏览文档一段时间后,我自己找到了答案。 Pytest需要使用数据库的权限。因此,只需在测试之前添加pytest标记@pytest.mark.django_db
就可以解决此问题。或者,可以使用pytestmark = pytest.mark.django_db
将整个模块标记为允许数据库访问。参见pytest-django docs。
文档说如果不授予数据库访问权限,测试将失败,因此我不希望它们永远停止。