django - Django 石墨烯突变在单元测试中返回错误请求
问题描述
我已经定义了以下 graphql 模式来创建一个非活动用户
from .models import User, UserManager
import graphene
from graphene_django import DjangoObjectType
class UserType(DjangoObjectType):
class Meta:
model = User
class PreSignupInput(graphene.InputObjectType):
email = graphene.String(required=True)
terms_of_use = graphene.Boolean(required=True)
class PreSignup(graphene.Mutation):
class Arguments:
pre_signup_data = PreSignupInput(required=False)
user = graphene.Field(UserType)
def mutate(self, info, user_data=None):
user = UserManager().create_inactive_user_with_email(user_data.email, user_data.terms_of_use)
return PreSignup(user=user)
class Mutation(graphene.ObjectType):
pre_signup = PreSignup.Field()
User类也在配置中定义为 AUTH_USER_MODEL 并且create_inactive_user_with_email创建一个 User 实例,将其保存到数据库并返回它。
每当我运行以下测试时:
from graphene_django.utils.testing import GraphQLTestCase
class UserSchemaTest(GraphQLTestCase):
def test_create_inactive_user(self):
response = self.query(
'''
mutation preSignup($input: PreSignupInput!) {
preSignup(input: $input) {
user {
id
email
}
}
}
''',
op_name='preSignup',
input_data={'email': 'test@example.com', 'terms_of_use': True}
)
print(response.json())
self.assertResponseNoErrors(response)
它失败并出现错误请求错误和以下错误消息:
{
'errors': [
{'message': 'Unknown argument "input" on field "preSignup" of type "Mutation".',
'locations': [{'line': 3, 'column': 27}]}]
}
有什么我想念的吗?我使用本教程进行测试。
谢谢!
解决方案
推荐阅读
- php - 如何在php电子邮件中获取html文件的路径
- raspbian - 即使 DHCP 服务器提供租约,也会触发 dhcpcd 回退
- reporting-services - SSRS Tablix 标题不重复
- .htaccess - 我将我的 htaccess 转换为 nginx,有人可以确认吗?
- git - 从同一组织的私有仓库安装私有仓库
- python - 将 github 操作与 python 请求库一起使用时出现 404 错误
- node.js - 收到错误 TypeError: Cannot read property 'map' of undefined in React
- node.js - 如何从 node_modules 导入本地依赖项
- javascript - 为什么js函数名要以大写字母开头
- linux - 一次将指定的IP范围ping到txt(不是一个接一个)-可能吗?