Improved mutation examples

This commit is contained in:
Syrus Akbary 2017-08-29 19:53:24 -07:00
parent 7455063728
commit f68682e153
2 changed files with 40 additions and 4 deletions

View File

@ -5,6 +5,10 @@ class GeoInput(graphene.InputObjectType):
lat = graphene.Float(required=True)
lng = graphene.Float(required=True)
@property
def latlng(self):
return "({},{})".format(self.lat, self.lng)
class Address(graphene.ObjectType):
latlng = graphene.String()
@ -14,10 +18,25 @@ class Query(graphene.ObjectType):
address = graphene.Field(Address, geo=GeoInput(required=True))
def resolve_address(self, info, geo):
return Address(latlng="({},{})".format(geo.get('lat'), geo.get('lng')))
return Address(latlng=geo.latlng)
schema = graphene.Schema(query=Query)
class CreateAddress(graphene.Mutation):
class Arguments:
geo = GeoInput(required=True)
Output = Address
def mutate(self, info, geo):
return Address(latlng=geo.latlng)
class Mutation(graphene.ObjectType):
create_address = CreateAddress.Field()
schema = graphene.Schema(query=Query, mutation=Mutation)
query = '''
query something{
address(geo: {lat:32.2, lng:12}) {
@ -25,6 +44,13 @@ query = '''
}
}
'''
mutation = '''
mutation addAddress{
createAddress(geo: {lat:32.2, lng:12}) {
latlng
}
}
'''
def test_query():
@ -37,6 +63,16 @@ def test_query():
}
def test_mutation():
result = schema.execute(mutation)
assert not result.errors
assert result.data == {
'createAddress': {
'latlng': "(32.2,12.0)",
}
}
if __name__ == '__main__':
result = schema.execute(query)
print(result.data['address']['latlng'])

View File

@ -54,7 +54,7 @@ def test_mutation_custom_output_type():
class CreateUser(Mutation):
class Input:
class Arguments:
name = String()
Output = User
@ -73,7 +73,7 @@ def test_mutation_custom_output_type():
def test_mutation_execution():
class CreateUser(Mutation):
class Input:
class Arguments:
name = String()
dynamic = Dynamic(lambda: String())
dynamic_none = Dynamic(lambda: None)