Skip to content

Commit 6b71c6e

Browse files
author
rawls238
committed
updates
1 parent ac272c3 commit 6b71c6e

File tree

2 files changed

+30
-30
lines changed

2 files changed

+30
-30
lines changed

graphql/core/validation/rules.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -265,13 +265,13 @@ def do_types_overlap(t1, t2):
265265
if isinstance(t1, GraphQLObjectType):
266266
if isinstance(t2, GraphQLObjectType):
267267
return False
268-
return t2.get_possible_types().index(t1) != -1
268+
return t1 in t2.get_possible_types()
269269
if isinstance(t1, GraphQLInterfaceType) or isinstance(t1, GraphQLUnionType):
270270
if isinstance(t2, GraphQLObjectType):
271-
return t1.get_possible_types().index(t2) != -1
271+
return t2 in t1.get_possible_types()
272272

273-
t1_type_names = {possible_type['name']: possible_type for possible_type in t1.get_possible_types()}
274-
return any(t['name'] in t1_type_names for t in t2.get_possible_types())
273+
t1_type_names = {possible_type.name: possible_type for possible_type in t1.get_possible_types()}
274+
return any(t.name in t1_type_names for t in t2.get_possible_types())
275275

276276
@staticmethod
277277
def type_incompatible_spread_message(frag_name, parent_type, frag_type):

tests/core_validation/test_possible_fragment_spreads.py

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -5,145 +5,145 @@
55
def error(frag_name, parent_type, frag_type, line, column):
66
return {
77
'message': PossibleFragmentSpreads.type_incompatible_spread_message(frag_name, parent_type, frag_type),
8-
'locations': [{ 'line': line, 'column': column}]
8+
'locations': [SourceLocation(line, column)]
99
}
1010

1111

12-
def error_annon(frag_name, parent_type, frag_type, line, column):
12+
def error_anon(parent_type, frag_type, line, column):
1313
return {
14-
'message': PossibleFragmentSpreads.type_incompatible_anon_spread_message(frag_name, parent_type, frag_type),
15-
'locations': [{ 'line': line, 'column': column}]
14+
'message': PossibleFragmentSpreads.type_incompatible_anon_spread_message(parent_type, frag_type),
15+
'locations': [SourceLocation(line, column)]
1616
}
1717

18-
def same_object():
18+
def test_same_object():
1919
expect_passes_rule(PossibleFragmentSpreads, '''
2020
fragment objectWithinObject on Dog { ...dogFragment }
2121
fragment dogFragment on Dog { barkVolume }
2222
''')
2323

24-
def same_object_inline_frag():
24+
def test_same_object_inline_frag():
2525
expect_passes_rule(PossibleFragmentSpreads, '''
2626
fragment objectWithinObjectAnon on Dog { ... on Dog { barkVolume } }
2727
''')
2828

29-
def object_into_implemented_interface():
29+
def test_object_into_implemented_interface():
3030
expect_passes_rule(PossibleFragmentSpreads, '''
3131
fragment objectWithinInterface on Pet { ...dogFragment }
3232
fragment dogFragment on Dog { barkVolume }
3333
''')
3434

35-
def object_into_containing_union():
35+
def test_object_into_containing_union():
3636
expect_passes_rule(PossibleFragmentSpreads, '''
3737
fragment objectWithinUnion on CatOrDog { ...dogFragment }
3838
fragment dogFragment on Dog { barkVolume }
3939
''')
4040

41-
def union_into_contained_object():
41+
def test_union_into_contained_object():
4242
expect_passes_rule(PossibleFragmentSpreads, '''
4343
fragment unionWithinObject on Dog { ...catOrDogFragment }
4444
fragment catOrDogFragment on CatOrDog { __typename }
4545
''')
4646

47-
def union_into_overlapping_interface():
47+
def test_union_into_overlapping_interface():
4848
expect_passes_rule(PossibleFragmentSpreads, '''
4949
fragment unionWithinInterface on Pet { ...catOrDogFragment }
5050
fragment catOrDogFragment on CatOrDog { __typename }
5151
''')
5252

53-
def union_into_overlapping_union():
53+
def test_union_into_overlapping_union():
5454
expect_passes_rule(PossibleFragmentSpreads, '''
5555
fragment unionWithinUnion on DogOrHuman { ...catOrDogFragment }
5656
fragment catOrDogFragment on CatOrDog { __typename }
5757
''')
5858

59-
def interface_into_implemented_object():
59+
def test_interface_into_implemented_object():
6060
expect_passes_rule(PossibleFragmentSpreads, '''
6161
fragment interfaceWithinObject on Dog { ...petFragment }
6262
fragment petFragment on Pet { name }
6363
''')
6464

65-
def interface_into_overlapping_interface():
65+
def test_interface_into_overlapping_interface():
6666
expect_passes_rule(PossibleFragmentSpreads, '''
6767
fragment interfaceWithinInterface on Pet { ...beingFragment }
6868
fragment beingFragment on Being { name }
6969
''')
7070

71-
def interface_into_overlapping_interface_in_inline_fragment():
71+
def test_interface_into_overlapping_interface_in_inline_fragment():
7272
expect_passes_rule(PossibleFragmentSpreads, '''
7373
fragment interfaceWithinInterface on Pet { ... on Being { name } }
7474
''')
7575

76-
def interface_into_overlapping_union():
76+
def test_interface_into_overlapping_union():
7777
expect_passes_rule(PossibleFragmentSpreads, '''
7878
fragment interfaceWithinUnion on CatOrDog { ...petFragment }
7979
fragment petFragment on Pet { name }
8080
''')
8181

82-
def different_object_into_object():
82+
def test_different_object_into_object():
8383
expect_fails_rule(PossibleFragmentSpreads, '''
8484
fragment invalidObjectWithinObject on Cat { ...dogFragment }
8585
fragment dogFragment on Dog { barkVolume }
8686
''', [error('dogFragment', 'Cat', 'Dog', 2, 51)])
8787

88-
def different_object_into_object_in_inline_fragment():
88+
def test_different_object_into_object_in_inline_fragment():
8989
expect_fails_rule(PossibleFragmentSpreads, '''
9090
fragment invalidObjectWithinObjectAnon on Cat {
9191
... on Dog { barkVolume }
9292
}
9393
''', [error_anon('Cat', 'Dog', 3, 9)])
9494

95-
def object_into_not_implementing_interface():
95+
def test_object_into_not_implementing_interface():
9696
expect_fails_rule(PossibleFragmentSpreads, '''
9797
fragment invalidObjectWithinInterface on Pet { ...humanFragment }
9898
fragment humanFragment on Human { pets { name } }
9999
''', [error('humanFragment', 'Pet', 'Human', 2, 54)])
100100

101-
def object_into_not_containing_union():
101+
def test_object_into_not_containing_union():
102102
expect_fails_rule(PossibleFragmentSpreads, '''
103103
fragment invalidObjectWithinUnion on CatOrDog { ...humanFragment }
104104
fragment humanFragment on Human { pets { name } }
105105
''', [error('humanFragment', 'CatOrDog', 'Human', 2, 55)])
106106

107-
def union_into_not_contained_object():
107+
def test_union_into_not_contained_object():
108108
expect_fails_rule(PossibleFragmentSpreads, '''
109109
fragment invalidUnionWithinObject on Human { ...catOrDogFragment }
110110
fragment catOrDogFragment on CatOrDog { __typename }
111111
''', [error('catOrDogFragment', 'Human', 'CatOrDog', 2, 52)])
112112

113-
def union_into_non_overlapping_interface():
113+
def test_union_into_non_overlapping_interface():
114114
expect_fails_rule(PossibleFragmentSpreads, '''
115115
fragment invalidUnionWithinInterface on Pet { ...humanOrAlienFragment }
116116
fragment humanOrAlienFragment on HumanOrAlien { __typename }
117117
''', [error('humanOrAlienFragment', 'Pet', 'HumanOrAlien', 2, 53)])
118118

119-
def union_into_non_overlapping_union():
119+
def test_union_into_non_overlapping_union():
120120
expect_fails_rule(PossibleFragmentSpreads, '''
121121
fragment invalidUnionWithinUnion on CatOrDog { ...humanOrAlienFragment }
122122
fragment humanOrAlienFragment on HumanOrAlien { __typename }
123123
''', [error('humanOrAlienFragment', 'CatOrDog', 'HumanOrAlien', 2, 54)]);
124124

125-
def interface_into_non_implementing_object():
125+
def test_interface_into_non_implementing_object():
126126
expect_fails_rule(PossibleFragmentSpreads, '''
127127
fragment invalidInterfaceWithinObject on Cat { ...intelligentFragment }
128128
fragment intelligentFragment on Intelligent { iq }
129129
''', [error('intelligentFragment', 'Cat', 'Intelligent', 2, 54)])
130130

131-
def interface_into_non_overlapping_interface():
131+
def test_interface_into_non_overlapping_interface():
132132
expect_fails_rule(PossibleFragmentSpreads, '''
133133
fragment invalidInterfaceWithinInterface on Pet {
134134
...intelligentFragment
135135
}
136136
fragment intelligentFragment on Intelligent { iq }
137137
''', [error('intelligentFragment', 'Pet', 'Intelligent', 3, 9)]);
138138

139-
def interface_into_non_overlapping_interface_in_inline_fragment():
139+
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
}
144144
''', [error_anon('Pet', 'Intelligent', 3, 9)]);
145145

146-
def interface_into_non_overlapping_union():
146+
def test_interface_into_non_overlapping_union():
147147
expect_fails_rule(PossibleFragmentSpreads, '''
148148
fragment invalidInterfaceWithinUnion on HumanOrAlien { ...petFragment }
149149
fragment petFragment on Pet { name }

0 commit comments

Comments
 (0)