mirror of
https://github.com/graphql-python/graphene-django.git
synced 2024-11-22 17:47:12 +03:00
Add nested model mutation tests
This commit is contained in:
parent
81a6dff9d0
commit
afbe6c90b7
|
@ -1,11 +1,26 @@
|
||||||
|
from django.db import models
|
||||||
|
from graphene import Field
|
||||||
|
from graphene.types.inputobjecttype import InputObjectType
|
||||||
from py.test import raises
|
from py.test import raises
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
|
||||||
|
from ...types import DjangoObjectType
|
||||||
from ..mutation import SerializerMutation
|
from ..mutation import SerializerMutation
|
||||||
|
|
||||||
|
|
||||||
|
class MyFakeModel(models.Model):
|
||||||
|
cool_name = models.CharField(max_length=50)
|
||||||
|
|
||||||
|
|
||||||
|
class MyModelSerializer(serializers.ModelSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = MyFakeModel
|
||||||
|
fields = '__all__'
|
||||||
|
|
||||||
|
|
||||||
class MySerializer(serializers.Serializer):
|
class MySerializer(serializers.Serializer):
|
||||||
text = serializers.CharField()
|
text = serializers.CharField()
|
||||||
|
model = MyModelSerializer()
|
||||||
|
|
||||||
|
|
||||||
def test_needs_serializer_class():
|
def test_needs_serializer_class():
|
||||||
|
@ -22,6 +37,7 @@ def test_has_fields():
|
||||||
serializer_class = MySerializer
|
serializer_class = MySerializer
|
||||||
|
|
||||||
assert 'text' in MyMutation._meta.fields
|
assert 'text' in MyMutation._meta.fields
|
||||||
|
assert 'model' in MyMutation._meta.fields
|
||||||
assert 'errors' in MyMutation._meta.fields
|
assert 'errors' in MyMutation._meta.fields
|
||||||
|
|
||||||
|
|
||||||
|
@ -31,5 +47,24 @@ def test_has_input_fields():
|
||||||
serializer_class = MySerializer
|
serializer_class = MySerializer
|
||||||
|
|
||||||
assert 'text' in MyMutation.Input._meta.fields
|
assert 'text' in MyMutation.Input._meta.fields
|
||||||
|
assert 'model' in MyMutation.Input._meta.fields
|
||||||
|
|
||||||
|
|
||||||
|
def test_nested_model():
|
||||||
|
|
||||||
|
class MyFakeModelGrapheneType(DjangoObjectType):
|
||||||
|
class Meta:
|
||||||
|
model = MyFakeModel
|
||||||
|
|
||||||
|
class MyMutation(SerializerMutation):
|
||||||
|
class Meta:
|
||||||
|
serializer_class = MySerializer
|
||||||
|
|
||||||
|
model_field = MyMutation._meta.fields['model']
|
||||||
|
assert isinstance(model_field, Field)
|
||||||
|
assert model_field.type == MyFakeModelGrapheneType
|
||||||
|
|
||||||
|
model_input = MyMutation.Input._meta.fields['model']
|
||||||
|
model_input_type = model_input._type.of_type
|
||||||
|
assert issubclass(model_input_type, InputObjectType)
|
||||||
|
assert 'cool_name' in model_input_type._meta.fields
|
||||||
|
|
Loading…
Reference in New Issue
Block a user