11from textwrap import dedent
2+ from typing import List , Optional , Tuple
23
34from pytest import raises # type: ignore
45
56from graphql .error import GraphQLSyntaxError
67from graphql .language import (
8+ ArgumentNode ,
79 BooleanValueNode ,
810 DirectiveDefinitionNode ,
911 DirectiveNode ,
2729 SchemaDefinitionNode ,
2830 SchemaExtensionNode ,
2931 StringValueNode ,
32+ TypeNode ,
3033 UnionTypeDefinitionNode ,
34+ ValueNode ,
3135 parse ,
3236)
3337
3438from ..fixtures import kitchen_sink_sdl # noqa: F401
3539
40+ Location = Optional [Tuple [int , int ]]
3641
37- def assert_syntax_error (text , message , location ):
42+
43+ def assert_syntax_error (text : str , message : str , location : Location ) -> None :
3844 with raises (GraphQLSyntaxError ) as exc_info :
3945 parse (text )
4046 error = exc_info .value
@@ -43,7 +49,7 @@ def assert_syntax_error(text, message, location):
4349 assert error .locations == [location ]
4450
4551
46- def assert_definitions (body , loc , num = 1 ):
52+ def assert_definitions (body : str , loc : Location , num = 1 ):
4753 doc = parse (body )
4854 assert isinstance (doc , DocumentNode )
4955 assert doc .loc == loc
@@ -53,35 +59,37 @@ def assert_definitions(body, loc, num=1):
5359 return definitions [0 ] if num == 1 else definitions
5460
5561
56- def type_node (name , loc ):
62+ def type_node (name : str , loc : Location ):
5763 return NamedTypeNode (name = name_node (name , loc ), loc = loc )
5864
5965
60- def name_node (name , loc ):
66+ def name_node (name : str , loc : Location ):
6167 return NameNode (value = name , loc = loc )
6268
6369
64- def field_node (name , type_ , loc ):
70+ def field_node (name : NameNode , type_ : TypeNode , loc : Location ):
6571 return field_node_with_args (name , type_ , [], loc )
6672
6773
68- def field_node_with_args (name , type_ , args , loc ):
74+ def field_node_with_args (name : NameNode , type_ : TypeNode , args : List , loc : Location ):
6975 return FieldDefinitionNode (
7076 name = name , arguments = args , type = type_ , directives = [], loc = loc , description = None
7177 )
7278
7379
74- def non_null_type (type_ , loc ):
80+ def non_null_type (type_ : TypeNode , loc : Location ):
7581 return NonNullTypeNode (type = type_ , loc = loc )
7682
7783
78- def enum_value_node (name , loc ):
84+ def enum_value_node (name : str , loc : Location ):
7985 return EnumValueDefinitionNode (
8086 name = name_node (name , loc ), directives = [], loc = loc , description = None
8187 )
8288
8389
84- def input_value_node (name , type_ , default_value , loc ):
90+ def input_value_node (
91+ name : NameNode , type_ : TypeNode , default_value : Optional [ValueNode ], loc : Location
92+ ):
8593 return InputValueDefinitionNode (
8694 name = name ,
8795 type = type_ ,
@@ -92,29 +100,33 @@ def input_value_node(name, type_, default_value, loc):
92100 )
93101
94102
95- def boolean_value_node (value , loc ):
103+ def boolean_value_node (value : bool , loc : Location ):
96104 return BooleanValueNode (value = value , loc = loc )
97105
98106
99- def string_value_node (value , block , loc ):
107+ def string_value_node (value : str , block : Optional [ bool ] , loc : Location ):
100108 return StringValueNode (value = value , block = block , loc = loc )
101109
102110
103- def list_type_node (type_ , loc ):
111+ def list_type_node (type_ : TypeNode , loc : Location ):
104112 return ListTypeNode (type = type_ , loc = loc )
105113
106114
107- def schema_extension_node (directives , operation_types , loc ):
115+ def schema_extension_node (
116+ directives : List [DirectiveNode ],
117+ operation_types : List [OperationTypeDefinitionNode ],
118+ loc : Location ,
119+ ):
108120 return SchemaExtensionNode (
109121 directives = directives , operation_types = operation_types , loc = loc
110122 )
111123
112124
113- def operation_type_definition (operation , type_ , loc ):
125+ def operation_type_definition (operation : OperationType , type_ : TypeNode , loc : Location ):
114126 return OperationTypeDefinitionNode (operation = operation , type = type_ , loc = loc )
115127
116128
117- def directive_node (name , arguments , loc ):
129+ def directive_node (name : NameNode , arguments : List [ ArgumentNode ] , loc : Location ):
118130 return DirectiveNode (name = name , arguments = arguments , loc = loc )
119131
120132
0 commit comments