我在我的项目中使用 Django 和 Graphene。我用GraphQLTestCase
. 当我尝试使用 JWT 对用户进行身份验证时,我通常会遇到错误。
这是我的代码:
from django.test import TestCase
import json
from graphene_django.utils.testing import GraphQLTestCase
from resume.graph.schema import schema
from .models import Post
from django.contrib.auth import get_user_model
from graphql_jwt.shortcuts import get_token
User = get_user_model()
class PostTestCase(GraphQLTestCase):
GRAPHQL_SCHEMA = schema
def test_post_list(self):
token = get_token(User.objects.get(pk=1))
headers = {"HTTP_AUTHORIZATION": f"JWT {token}"}
response = self.query(
'''
query {
post{
user
text
}
}
''',
op_name = 'post',
headers=headers,
)
content = json.loads(response.content)
self.assertResponseNoErrors(response)
这是我在运行 python manage.py 测试后得到的错误。
Traceback(最近一次调用最后):文件“C:\Users\Udemezue\Desktop\resume\post\tests.py”,第 25 行,在 test_post_list token = get_token(User.objects.get(pk=9)) 文件“ C:\Users\Udemezue\Desktop\resume\env\lib\site-packages\django\db\models\manager.py",第 82 行,在 manager_method 返回 getattr(self.get_queryset(), name)(*args, **kwargs) 文件“C:\Users\Udemezue\Desktop\resume\env\lib\site-packages\django\db\models\query.py”,第 415 行,在 get raise self.model.DoesNotExist(accounts. models.User.DoesNotExist:用户匹配查询不存在。
这是我得到的错误。
==================================================== ==================== 失败:test_post_list (post.tests.PostTestCase)
回溯(最后一次调用):文件“C:\Users\Udemezue\Desktop\resume\post\tests.py”,第 62 行,在 test_post_list self.assertResponseNoErrors(response) 文件“C:\Users\Udemezue\Desktop\ resume\env\lib\site-packages\graphene_django\utils\testing.py",第 75 行,在 assertResponseNoErrors self.assertEqual(resp.status_code, 200) AssertionError: 400 != 200
在 0.137 秒内运行 1 次测试
FAILED (failures=1) 正在销毁别名“default”的测试数据库...