gpt4 book ai didi

python - 如何在 graphene-django GraphQLTestCase 中使用 django-grahql-jwt 进行身份验证?

转载 作者:行者123 更新时间:2023-12-01 23:57:58 24 4
gpt4 key购买 nike

我正在尝试根据 graphene django 文档测试我的突变。该突变适用于 @login_required 装饰器,但存在一个问题,因为任何登录测试方法都不起作用。我尝试使用 self.client.loginself.client.force_login。我什至做了一个 tokenAuth 突变,并在那里硬编码了一些凭证,但它也不起作用;用户仍然是匿名用户。

def test_create_member_mutation(self):
response = self.query(
'''
mutation createMember($firstName: String) {
createMember(firstName: $firstName) {
member {
id
}
}
}
''',
op_name='createMember',
variables={'firstName': 'Foo'}
)

self.assertResponseNoErrors(response)

最佳答案

我在测试中是这样解决的:

您可以在 self.query()headers 关键字参数中传递为测试用户创建的 token :

from django.contrib.auth import get_user_model
from graphene_django.utils import GraphQLTestCase
from graphql_jwt.shortcuts import get_token


class ExampleTests(GraphQLTestCase):

def test_create_member_mutation(self):
user = get_user_model().objects.get(pk=1)
token = get_token(user)
headers = {"HTTP_AUTHORIZATION": f"JWT {token}"}

graphql = '''
mutation createMember($firstName: String) {
createMember(firstName: $firstName) {
member {
id
}
}
}
'''

respsone = self.query(
graphql,
op_name='createMember',
variables={'firstName': 'Foo'},
headers=headers,
)
self.assertResponseNoErrors(response)

关于python - 如何在 graphene-django GraphQLTestCase 中使用 django-grahql-jwt 进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62360456/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com