44from graphql .type import (
55 GraphQLArgument ,
66 GraphQLDeprecatedDirective ,
7+ GraphQLBoolean ,
78 GraphQLDirective ,
89 GraphQLEnumType ,
10+ GraphQLField ,
11+ GraphQLFloat ,
12+ GraphQLID ,
913 GraphQLIncludeDirective ,
1014 GraphQLInputField ,
1115 GraphQLInputObjectType ,
16+ GraphQLInt ,
1217 GraphQLInterfaceType ,
1318 GraphQLList ,
1419 GraphQLNonNull ,
1924 GraphQLUnionType ,
2025 assert_abstract_type ,
2126 assert_composite_type ,
27+ assert_directive ,
2228 assert_enum_type ,
2329 assert_input_object_type ,
2430 assert_input_type ,
5460 is_output_type ,
5561 is_scalar_type ,
5662 is_specified_directive ,
63+ is_specified_scalar_type ,
5764 is_type ,
5865 is_union_type ,
5966 is_wrapping_type ,
6471UnionType = GraphQLUnionType ("Union" , types = [ObjectType ])
6572EnumType = GraphQLEnumType ("Enum" , values = {"foo" : {}})
6673InputObjectType = GraphQLInputObjectType ("InputObject" , {})
67- ScalarType = GraphQLScalarType (
68- "Scalar" , serialize = lambda : {}, parse_value = lambda : {}, parse_literal = lambda : {}
69- )
74+ ScalarType = GraphQLScalarType ("Scalar" , lambda : None )
75+ Directive = GraphQLDirective ("Directive" , [DirectiveLocation .QUERY ])
7076
7177
7278def describe_type_predicates ():
@@ -100,10 +106,65 @@ def returns_true_for_custom_scalar():
100106 assert is_scalar_type (ScalarType ) is True
101107 assert_scalar_type (ScalarType )
102108
109+ def returns_fals_for_scalar_class_rather_than_instance ():
110+ assert is_scalar_type (GraphQLScalarType ) is False
111+ with raises (TypeError ):
112+ assert_scalar_type (GraphQLScalarType )
113+
114+ def returns_false_for_wrapped_scalar ():
115+ assert is_scalar_type (GraphQLList (ScalarType )) is False
116+ with raises (TypeError ):
117+ assert_scalar_type (GraphQLList (ScalarType ))
118+
103119 def returns_false_for_non_scalar ():
104120 assert is_scalar_type (EnumType ) is False
105121 with raises (TypeError ):
106122 assert_scalar_type (EnumType )
123+ assert is_scalar_type (Directive ) is False
124+ with raises (TypeError ):
125+ assert_scalar_type (Directive )
126+
127+ def returns_false_for_random_garbage ():
128+ assert is_scalar_type (None ) is False
129+ with raises (TypeError ):
130+ assert_scalar_type (None )
131+ assert is_scalar_type ({"what" : "is this" }) is False
132+ with raises (TypeError ):
133+ assert_scalar_type ({"what" : "is this" })
134+
135+ def describe_is_specified_scalar_type ():
136+ def returns_true_for_specified_scalars ():
137+ assert is_specified_scalar_type (GraphQLString ) is True
138+ assert is_specified_scalar_type (GraphQLInt ) is True
139+ assert is_specified_scalar_type (GraphQLFloat ) is True
140+ assert is_specified_scalar_type (GraphQLBoolean ) is True
141+ assert is_specified_scalar_type (GraphQLID ) is True
142+
143+ def returns_false_for_custom_scalar ():
144+ assert is_specified_scalar_type (ScalarType ) is False
145+
146+ def returns_fals_for_scalar_class_rather_than_specified_instance ():
147+ assert is_specified_scalar_type (GraphQLScalarType ) is False
148+
149+ def returns_false_for_wrapped_specified_scalar ():
150+ assert is_scalar_type (GraphQLList (GraphQLString )) is False
151+
152+ def returns_false_for_non_scalar ():
153+ assert is_specified_scalar_type (EnumType ) is False
154+ assert is_specified_scalar_type (Directive ) is False
155+
156+ def returns_false_for_spec_defined_directive ():
157+ assert is_specified_scalar_type (GraphQLSkipDirective ) is False
158+
159+ def returns_false_for_object_type_named_like_specified_directive ():
160+ ObjectNamedLikeScalar = GraphQLObjectType (
161+ "String" , {"serialize" : GraphQLField (GraphQLString )}
162+ )
163+ assert is_specified_scalar_type (ObjectNamedLikeScalar ) is False
164+
165+ def returns_false_for_random_garbage ():
166+ assert is_specified_scalar_type (None ) is False
167+ assert is_specified_scalar_type ({"what" : "is this" }) is False
107168
108169 def describe_is_object_type ():
109170 def returns_true_for_object_type ():
@@ -463,23 +524,34 @@ def returns_false_for_optional_input_field():
463524
464525 def describe_directive_predicates ():
465526 def describe_is_directive ():
466- def returns_true_for_directives ():
467- directive = GraphQLDirective ("Foo" , [DirectiveLocation .QUERY ])
468- assert is_directive (directive ) is True
527+ def returns_true_for_spec_defined_directive ():
469528 assert is_directive (GraphQLSkipDirective ) is True
529+ assert_directive (GraphQLSkipDirective )
530+
531+ def returns_true_for_custom_directive ():
532+ assert is_directive (Directive ) is True
533+ assert_directive (Directive )
470534
471535 def returns_false_for_directive_class_rather_than_instance ():
472536 assert is_directive (GraphQLDirective ) is False
537+ with raises (TypeError ):
538+ assert_directive (GraphQLScalarType )
473539
474- def returns_false_for_object_type ():
475- assert is_directive (ObjectType ) is False
476-
477- def returns_false_for_scalar_type ():
478- assert is_directive (GraphQLString ) is False
540+ def returns_false_for_non_directive ():
541+ assert is_directive (EnumType ) is False
542+ with raises (TypeError ):
543+ assert_directive (EnumType )
544+ assert is_directive (ScalarType ) is False
545+ with raises (TypeError ):
546+ assert_directive (ScalarType )
479547
480548 def returns_false_for_random_garbage ():
481549 assert is_directive (None ) is False
550+ with raises (TypeError ):
551+ assert_directive (None )
482552 assert is_directive ({"what" : "is this" }) is False
553+ with raises (TypeError ):
554+ assert_directive ({"what" : "is this" })
483555
484556 def describe_is_specified_directive ():
485557 def returns_true_for_specified_directives ():
@@ -488,25 +560,21 @@ def returns_true_for_specified_directives():
488560 assert is_specified_directive (GraphQLDeprecatedDirective ) is True
489561
490562 def returns_false_for_custom_directive ():
491- directive = GraphQLDirective ("Foo" , [DirectiveLocation .QUERY ])
492- assert is_specified_directive (directive ) is False
563+ assert is_specified_directive (Directive ) is False
493564
494- def returns_false_for_directive_class_rather_than_instance ():
565+ def returns_false_for_directive_class_rather_than_specified_instance ():
495566 assert is_specified_directive (GraphQLDirective ) is False
496567
497- def returns_false_for_object_type ():
498- assert is_specified_directive (ObjectType ) is False
568+ def returns_false_for_non_directive ():
569+ assert is_specified_directive (EnumType ) is False
570+ assert is_specified_directive (ScalarType ) is False
499571
500572 def returns_false_for_spec_defined_scalar_type ():
501573 assert is_specified_directive (GraphQLString ) is False
502574
503- def returns_false_for_scalar_type_with_name_of_specified_directive ():
504- assert (
505- is_specified_directive (
506- GraphQLScalarType ("deprecated" , lambda : None )
507- )
508- is False
509- )
575+ def returns_false_for_scalar_type_named_like_specified_directive ():
576+ ScalarNamedLikeDirective = GraphQLScalarType ("deprecated" , lambda : None )
577+ assert is_specified_directive (ScalarNamedLikeDirective ) is False
510578
511579 def returns_false_for_random_garbage ():
512580 assert is_specified_directive (None ) is False
0 commit comments