Skip to content

Commit f68682e

Browse files
committed
Improved mutation examples
1 parent 7455063 commit f68682e

File tree

2 files changed

+40
-4
lines changed

2 files changed

+40
-4
lines changed

examples/complex_example.py

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ class GeoInput(graphene.InputObjectType):
55
lat = graphene.Float(required=True)
66
lng = graphene.Float(required=True)
77

8+
@property
9+
def latlng(self):
10+
return "({},{})".format(self.lat, self.lng)
11+
812

913
class Address(graphene.ObjectType):
1014
latlng = graphene.String()
@@ -14,17 +18,39 @@ class Query(graphene.ObjectType):
1418
address = graphene.Field(Address, geo=GeoInput(required=True))
1519

1620
def resolve_address(self, info, geo):
17-
return Address(latlng="({},{})".format(geo.get('lat'), geo.get('lng')))
21+
return Address(latlng=geo.latlng)
22+
23+
24+
class CreateAddress(graphene.Mutation):
25+
26+
class Arguments:
27+
geo = GeoInput(required=True)
28+
29+
Output = Address
30+
31+
def mutate(self, info, geo):
32+
return Address(latlng=geo.latlng)
1833

1934

20-
schema = graphene.Schema(query=Query)
35+
class Mutation(graphene.ObjectType):
36+
create_address = CreateAddress.Field()
37+
38+
39+
schema = graphene.Schema(query=Query, mutation=Mutation)
2140
query = '''
2241
query something{
2342
address(geo: {lat:32.2, lng:12}) {
2443
latlng
2544
}
2645
}
2746
'''
47+
mutation = '''
48+
mutation addAddress{
49+
createAddress(geo: {lat:32.2, lng:12}) {
50+
latlng
51+
}
52+
}
53+
'''
2854

2955

3056
def test_query():
@@ -37,6 +63,16 @@ def test_query():
3763
}
3864

3965

66+
def test_mutation():
67+
result = schema.execute(mutation)
68+
assert not result.errors
69+
assert result.data == {
70+
'createAddress': {
71+
'latlng': "(32.2,12.0)",
72+
}
73+
}
74+
75+
4076
if __name__ == '__main__':
4177
result = schema.execute(query)
4278
print(result.data['address']['latlng'])

graphene/types/tests/test_mutation.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ class User(ObjectType):
5454

5555
class CreateUser(Mutation):
5656

57-
class Input:
57+
class Arguments:
5858
name = String()
5959

6060
Output = User
@@ -73,7 +73,7 @@ def mutate(self, info, name):
7373
def test_mutation_execution():
7474
class CreateUser(Mutation):
7575

76-
class Input:
76+
class Arguments:
7777
name = String()
7878
dynamic = Dynamic(lambda: String())
7979
dynamic_none = Dynamic(lambda: None)

0 commit comments

Comments
 (0)