如何测试具有突变功能的** wargs的石墨烯突变?

时间:2020-10-14 10:50:10

标签: python django unit-testing graphene-python

我正在测试一个突变,该突变会创建一个类似于以下内容的用户:

def test_create_user(self):
    user_mutation = """
        mutation($id: ID!, $group: GroupInput!, $address: AddressInput!){
            createUser(id: $id, group: $group, address: $address) {
                user {
                    id
                }
            }
        }
    """

    group = {
        'name': 'GroupA',
        'contact': '1231323131'
    }
    address = {
        'street': '123',
        'city': 'Test City'
    }

    resp = self.client.execute(user_mutation,
                               variable_values={
                                   'id': str(uuid.uuid4()),
                                   'group': group,
                                   'address': address
                               })

变异类:

class CreateUser(graphene.Mutation):
    class Arguments:
        id = graphene.String(required=True)
        group = GroupInput(required=True)
        address = AddressInput(required=True)
        ...more input here

    user = graphene.Field(UserType)

    def mutate(self, info, **kwargs):
        user = create_user(**kwargs)
        return CreateUser(user=user)

问题是,当我尝试运行此测试时,它返回错误:

test_create_user {'errors': [{'message': "create_user() got an unexpected keyword argument 'group'", 'locations': [{'line': 4, 'co
lumn': 25}], 'path': ['createUser']}], 'data': OrderedDict([('createUser', None)])}

我不确定应该怎么做,我使用 kwargs ,因为这里有更多输入要添加。任何想法和建议都将不胜感激!

0 个答案:

没有答案