@@ -56,14 +56,14 @@ def cycle_sdl(sdl: str) -> str:
56
56
TypeWithExtensionAstNodes = GraphQLNamedType
57
57
58
58
59
- def print_ast_node (obj : TypeWithAstNode ) -> str :
59
+ def expect_ast_node (obj : TypeWithAstNode , expected : str ) -> None :
60
60
assert obj is not None and obj .ast_node is not None
61
- return print_ast (obj .ast_node )
61
+ assert print_ast (obj .ast_node ) == expected
62
62
63
63
64
- def print_all_ast_nodes (obj : TypeWithExtensionAstNodes ) -> str :
65
- assert obj is not None and obj .ast_node is not None
66
- return print_ast (DocumentNode ( definitions = [ obj . ast_node , * obj .extension_ast_nodes ]))
64
+ def expect_extension_ast_nodes (obj : TypeWithExtensionAstNodes , expected : str ) -> None :
65
+ assert obj is not None and obj .extension_ast_nodes is not None
66
+ assert " \n \n " . join ( print_ast (node ) for node in obj .extension_ast_nodes ) == expected
67
67
68
68
69
69
def describe_schema_builder ():
@@ -729,25 +729,16 @@ def supports_specified_by_directives():
729
729
assert foo_scalar .specified_by_url == "https://example.com/foo_spec"
730
730
731
731
def correctly_extend_scalar_type ():
732
- scalar_sdl = dedent (
732
+ schema = build_schema (
733
733
"""
734
734
scalar SomeScalar
735
-
736
735
extend scalar SomeScalar @foo
737
-
738
736
extend scalar SomeScalar @bar
737
+
738
+ directive @foo on SCALAR
739
+ directive @bar on SCALAR
739
740
"""
740
741
)
741
- schema = build_schema (
742
- scalar_sdl
743
- + "\n \n "
744
- + dedent (
745
- """
746
- directive @foo on SCALAR
747
- directive @bar on SCALAR
748
- """
749
- )
750
- )
751
742
752
743
some_scalar = assert_scalar_type (schema .get_type ("SomeScalar" ))
753
744
assert print_type (some_scalar ) == dedent (
@@ -756,10 +747,20 @@ def correctly_extend_scalar_type():
756
747
"""
757
748
)
758
749
759
- assert print_all_ast_nodes (some_scalar ) == scalar_sdl
750
+ expect_ast_node (some_scalar , "scalar SomeScalar" )
751
+ expect_extension_ast_nodes (
752
+ some_scalar ,
753
+ dedent (
754
+ """
755
+ extend scalar SomeScalar @foo
756
+
757
+ extend scalar SomeScalar @bar
758
+ """
759
+ ),
760
+ )
760
761
761
762
def correctly_extend_object_type ():
762
- object_sdl = dedent (
763
+ schema = build_schema (
763
764
"""
764
765
type SomeObject implements Foo {
765
766
first: String
@@ -772,19 +773,12 @@ def correctly_extend_object_type():
772
773
extend type SomeObject implements Baz {
773
774
third: Float
774
775
}
776
+
777
+ interface Foo
778
+ interface Bar
779
+ interface Baz
775
780
"""
776
781
)
777
- schema = build_schema (
778
- object_sdl
779
- + "\n \n "
780
- + dedent (
781
- """
782
- interface Foo
783
- interface Bar
784
- interface Baz
785
- """
786
- )
787
- )
788
782
789
783
some_object = assert_object_type (schema .get_type ("SomeObject" ))
790
784
assert print_type (some_object ) == dedent (
@@ -797,10 +791,33 @@ def correctly_extend_object_type():
797
791
"""
798
792
)
799
793
800
- assert print_all_ast_nodes (some_object ) == object_sdl
794
+ expect_ast_node (
795
+ some_object ,
796
+ dedent (
797
+ """
798
+ type SomeObject implements Foo {
799
+ first: String
800
+ }
801
+ """
802
+ ),
803
+ )
804
+ expect_extension_ast_nodes (
805
+ some_object ,
806
+ dedent (
807
+ """
808
+ extend type SomeObject implements Bar {
809
+ second: Int
810
+ }
811
+
812
+ extend type SomeObject implements Baz {
813
+ third: Float
814
+ }
815
+ """
816
+ ),
817
+ )
801
818
802
819
def correctly_extend_interface_type ():
803
- interface_sdl = dedent (
820
+ schema = build_schema (
804
821
"""
805
822
interface SomeInterface {
806
823
first: String
@@ -815,7 +832,6 @@ def correctly_extend_interface_type():
815
832
}
816
833
"""
817
834
)
818
- schema = build_schema (interface_sdl )
819
835
820
836
some_interface = assert_interface_type (schema .get_type ("SomeInterface" ))
821
837
assert print_type (some_interface ) == dedent (
@@ -828,29 +844,43 @@ def correctly_extend_interface_type():
828
844
"""
829
845
)
830
846
831
- assert print_all_ast_nodes (some_interface ) == interface_sdl
847
+ expect_ast_node (
848
+ some_interface ,
849
+ dedent (
850
+ """
851
+ interface SomeInterface {
852
+ first: String
853
+ }
854
+ """
855
+ ),
856
+ )
857
+ expect_extension_ast_nodes (
858
+ some_interface ,
859
+ dedent (
860
+ """
861
+ extend interface SomeInterface {
862
+ second: Int
863
+ }
864
+
865
+ extend interface SomeInterface {
866
+ third: Float
867
+ }
868
+ """
869
+ ),
870
+ )
832
871
833
872
def correctly_extend_union_type ():
834
- union_sdl = dedent (
873
+ schema = build_schema (
835
874
"""
836
875
union SomeUnion = FirstType
837
-
838
876
extend union SomeUnion = SecondType
839
-
840
877
extend union SomeUnion = ThirdType
878
+
879
+ type FirstType
880
+ type SecondType
881
+ type ThirdType
841
882
"""
842
883
)
843
- schema = build_schema (
844
- union_sdl
845
- + "\n \n "
846
- + dedent (
847
- """
848
- type FirstType
849
- type SecondType
850
- type ThirdType
851
- """
852
- )
853
- )
854
884
855
885
some_union = assert_union_type (schema .get_type ("SomeUnion" ))
856
886
assert print_type (some_union ) == dedent (
@@ -859,10 +889,20 @@ def correctly_extend_union_type():
859
889
"""
860
890
)
861
891
862
- assert print_all_ast_nodes (some_union ) == union_sdl
892
+ expect_ast_node (some_union , "union SomeUnion = FirstType" )
893
+ expect_extension_ast_nodes (
894
+ some_union ,
895
+ dedent (
896
+ """
897
+ extend union SomeUnion = SecondType
898
+
899
+ extend union SomeUnion = ThirdType
900
+ """
901
+ ),
902
+ )
863
903
864
904
def correctly_extend_enum_type ():
865
- enum_sdl = dedent (
905
+ schema = build_schema (
866
906
"""
867
907
enum SomeEnum {
868
908
FIRST
@@ -877,7 +917,6 @@ def correctly_extend_enum_type():
877
917
}
878
918
"""
879
919
)
880
- schema = build_schema (enum_sdl )
881
920
882
921
some_enum = assert_enum_type (schema .get_type ("SomeEnum" ))
883
922
assert print_type (some_enum ) == dedent (
@@ -890,10 +929,33 @@ def correctly_extend_enum_type():
890
929
"""
891
930
)
892
931
893
- assert print_all_ast_nodes (some_enum ) == enum_sdl
932
+ expect_ast_node (
933
+ some_enum ,
934
+ dedent (
935
+ """
936
+ enum SomeEnum {
937
+ FIRST
938
+ }
939
+ """
940
+ ),
941
+ )
942
+ expect_extension_ast_nodes (
943
+ some_enum ,
944
+ dedent (
945
+ """
946
+ extend enum SomeEnum {
947
+ SECOND
948
+ }
949
+
950
+ extend enum SomeEnum {
951
+ THIRD
952
+ }
953
+ """
954
+ ),
955
+ )
894
956
895
957
def correctly_extend_input_object_type ():
896
- input_sdl = dedent (
958
+ schema = build_schema (
897
959
"""
898
960
input SomeInput {
899
961
first: String
@@ -908,7 +970,6 @@ def correctly_extend_input_object_type():
908
970
}
909
971
"""
910
972
)
911
- schema = build_schema (input_sdl )
912
973
913
974
some_input = assert_input_object_type (schema .get_type ("SomeInput" ))
914
975
assert print_type (some_input ) == dedent (
@@ -921,7 +982,30 @@ def correctly_extend_input_object_type():
921
982
"""
922
983
)
923
984
924
- assert print_all_ast_nodes (some_input ) == input_sdl
985
+ expect_ast_node (
986
+ some_input ,
987
+ dedent (
988
+ """
989
+ input SomeInput {
990
+ first: String
991
+ }
992
+ """
993
+ ),
994
+ )
995
+ expect_extension_ast_nodes (
996
+ some_input ,
997
+ dedent (
998
+ """
999
+ extend input SomeInput {
1000
+ second: Int
1001
+ }
1002
+
1003
+ extend input SomeInput {
1004
+ third: Float
1005
+ }
1006
+ """
1007
+ ),
1008
+ )
925
1009
926
1010
def correctly_assign_ast_nodes ():
927
1011
sdl = dedent (
@@ -982,20 +1066,15 @@ def correctly_assign_ast_nodes():
982
1066
] == ast .definitions
983
1067
984
1068
test_field = query .fields ["testField" ]
985
- assert print_ast_node (test_field ) == (
986
- "testField(testArg: TestInput): TestUnion"
987
- )
988
- assert print_ast_node (test_field .args ["testArg" ]) == "testArg: TestInput"
989
- assert print_ast_node (test_input .fields ["testInputField" ]) == (
990
- "testInputField: TestEnum"
991
- )
1069
+ expect_ast_node (test_field , "testField(testArg: TestInput): TestUnion" )
1070
+ expect_ast_node (test_field .args ["testArg" ], "testArg: TestInput" )
1071
+ expect_ast_node (test_input .fields ["testInputField" ], "testInputField: TestEnum" )
992
1072
test_enum_value = test_enum .values ["TEST_VALUE" ]
993
- assert test_enum_value
994
- assert print_ast_node (test_enum_value ) == "TEST_VALUE"
995
- assert print_ast_node (test_interface .fields ["interfaceField" ]) == (
996
- "interfaceField: String"
1073
+ expect_ast_node (test_enum_value , "TEST_VALUE" )
1074
+ expect_ast_node (
1075
+ test_interface .fields ["interfaceField" ], "interfaceField: String"
997
1076
)
998
- assert print_ast_node (test_directive .args ["arg" ]) == "arg: TestScalar"
1077
+ expect_ast_node (test_directive .args ["arg" ], "arg: TestScalar" )
999
1078
1000
1079
def root_operation_types_with_custom_names ():
1001
1080
schema = build_schema (
0 commit comments