Skip to content

Commit 8628cba

Browse files
committed
Make test pass
1 parent 6b71c6e commit 8628cba

File tree

2 files changed

+44
-11
lines changed

2 files changed

+44
-11
lines changed

tests/core_validation/test_possible_fragment_spreads.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ def test_union_into_non_overlapping_union():
120120
expect_fails_rule(PossibleFragmentSpreads, '''
121121
fragment invalidUnionWithinUnion on CatOrDog { ...humanOrAlienFragment }
122122
fragment humanOrAlienFragment on HumanOrAlien { __typename }
123-
''', [error('humanOrAlienFragment', 'CatOrDog', 'HumanOrAlien', 2, 54)]);
123+
''', [error('humanOrAlienFragment', 'CatOrDog', 'HumanOrAlien', 2, 54)])
124124

125125
def test_interface_into_non_implementing_object():
126126
expect_fails_rule(PossibleFragmentSpreads, '''
@@ -134,17 +134,17 @@ def test_interface_into_non_overlapping_interface():
134134
...intelligentFragment
135135
}
136136
fragment intelligentFragment on Intelligent { iq }
137-
''', [error('intelligentFragment', 'Pet', 'Intelligent', 3, 9)]);
137+
''', [error('intelligentFragment', 'Pet', 'Intelligent', 3, 9)])
138138

139139
def test_interface_into_non_overlapping_interface_in_inline_fragment():
140140
expect_fails_rule(PossibleFragmentSpreads, '''
141141
fragment invalidInterfaceWithinInterfaceAnon on Pet {
142142
...on Intelligent { iq }
143143
}
144-
''', [error_anon('Pet', 'Intelligent', 3, 9)]);
144+
''', [error_anon('Pet', 'Intelligent', 3, 9)])
145145

146146
def test_interface_into_non_overlapping_union():
147147
expect_fails_rule(PossibleFragmentSpreads, '''
148148
fragment invalidInterfaceWithinUnion on HumanOrAlien { ...petFragment }
149149
fragment petFragment on Pet { name }
150-
''', [error('petFragment', 'HumanOrAlien', 'Pet', 2, 62)]);
150+
''', [error('petFragment', 'HumanOrAlien', 'Pet', 2, 62)])

tests/core_validation/utils.py

Lines changed: 40 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@
1919
GraphQLList)
2020
from graphql.core.error import format_error
2121

22+
Being = GraphQLInterfaceType('Being', {
23+
'name': GraphQLField(GraphQLString, {
24+
'surname': GraphQLArgument(GraphQLBoolean),
25+
})
26+
})
27+
2228
Pet = GraphQLInterfaceType('Pet', {
2329
'name': GraphQLField(GraphQLString, {
2430
'surname': GraphQLArgument(GraphQLBoolean),
@@ -40,21 +46,47 @@
4046
'doesKnowCommand': GraphQLField(GraphQLBoolean, {
4147
'dogCommand': GraphQLArgument(DogCommand)
4248
})
43-
}, interfaces=[Pet])
49+
}, interfaces=[Being, Pet])
4450

4551
Cat = GraphQLObjectType('Cat', lambda: {
4652
'furColor': GraphQLField(FurColor)
47-
}, interfaces=[Pet])
53+
}, interfaces=[Being, Pet])
4854

4955
CatOrDog = GraphQLUnionType('CatOrDog', [Dog, Cat])
5056

51-
Human = GraphQLObjectType('Human', {
52-
'name': GraphQLField(GraphQLString, {
53-
'surname': GraphQLArgument(GraphQLBoolean),
54-
}),
55-
'pets': GraphQLField(GraphQLList(Pet)),
57+
Intelligent = GraphQLInterfaceType('Intelligent', {
58+
'iq': GraphQLField(GraphQLInt),
5659
})
5760

61+
Human = GraphQLObjectType(
62+
name='Human',
63+
interfaces=[Being, Intelligent],
64+
fields={
65+
'name': GraphQLField(GraphQLString, {
66+
'surname': GraphQLArgument(GraphQLBoolean),
67+
}),
68+
'pets': GraphQLField(GraphQLList(Pet)),
69+
'iq': GraphQLField(GraphQLInt),
70+
},
71+
)
72+
73+
Alien = GraphQLObjectType(
74+
name='Alien',
75+
is_type_of=lambda *args: True,
76+
interfaces=[Being, Intelligent],
77+
fields={
78+
'iq': GraphQLField(GraphQLInt),
79+
'name': GraphQLField(GraphQLString, {
80+
'surname': GraphQLField(GraphQLBoolean),
81+
}),
82+
'numEyes': GraphQLField(GraphQLInt),
83+
},
84+
)
85+
86+
DogOrHuman = GraphQLUnionType('DogOrHuman', [Dog, Human])
87+
88+
HumanOrAlien = GraphQLUnionType('HumanOrAlien', [Human, Alien])
89+
5890
FurColor = GraphQLEnumType('FurColor', {
5991
'BROWN': GraphQLEnumValue(0),
6092
'BLACK': GraphQLEnumValue(1),
@@ -121,6 +153,7 @@
121153
'dog': GraphQLField(Dog),
122154
'pet': GraphQLField(Pet),
123155
'catOrDog': GraphQLField(CatOrDog),
156+
'humanOrAlien': GraphQLField(HumanOrAlien),
124157
'complicatedArgs': GraphQLField(ComplicatedArgs),
125158
})
126159

0 commit comments

Comments
 (0)