我正尝试根据石墨烯django文档测试我的突变。该变体可以与@login_required
decorator一起使用,并且存在问题,因为任何登录测试方法均无效。我试着用self.client.login
,self.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)
这就是我在测试中解决问题的方式。
您可以在的headers
关键字参数中传递为测试用户制作的令牌self.query()
:
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):
token = get_token(get_user_model().objects.get(pk=1))
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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句