Django石墨烯突变在单元测试中返回Bad Request

问题描述

我已经定义了以下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': '[email protected]','terms_of_use': True}
        )

        print(response.json())

        self.assertResponseNoErrors(response)

它失败,并出现Bad Request错误和以下错误消息:

{
    'errors': [
        {'message': 'UnkNown argument "input" on field "preSignup" of type "Mutation".','locations': [{'line': 3,'column': 27}]}]
}

我有什么想念的吗?我用this tutorial做测试。

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)