def correctly_extend_input_object_type(): input_sdl = dedent(""" input SomeInput { first: String } extend input SomeInput { second: Int } extend input SomeInput { third: Float } """) schema = build_schema(input_sdl) some_input = assert_input_object_type(schema.get_type("SomeInput")) assert print_type(some_input) + "\n" == dedent(""" input SomeInput { first: String second: Int third: Float } """) assert print_all_ast_nodes(some_input) == input_sdl
def correctly_extend_interface_type(): interface_sdl = dedent(""" interface SomeInterface { first: String } extend interface SomeInterface { second: Int } extend interface SomeInterface { third: Float } """) schema = build_schema(interface_sdl) some_interface = assert_interface_type( schema.get_type("SomeInterface")) assert print_type(some_interface) + "\n" == dedent(""" interface SomeInterface { first: String second: Int third: Float } """) assert print_all_ast_nodes(some_interface) == interface_sdl
def correctly_extend_enum_type(): enum_sdl = dedent(""" enum SomeEnum { FIRST } extend enum SomeEnum { SECOND } extend enum SomeEnum { THIRD } """) schema = build_schema(enum_sdl) some_enum = assert_enum_type(schema.get_type("SomeEnum")) assert print_type(some_enum) + "\n" == dedent(""" enum SomeEnum { FIRST SECOND THIRD } """) assert print_all_ast_nodes(some_enum) == enum_sdl
def correctly_extend_union_type(): union_sdl = dedent( """ union SomeUnion = FirstType extend union SomeUnion = SecondType extend union SomeUnion = ThirdType """ ) schema = build_schema( union_sdl + dedent( """ type FirstType type SecondType type ThirdType """ ) ) some_union = assert_union_type(schema.get_type("SomeUnion")) assert print_type(some_union) + "\n" == dedent( """ union SomeUnion = FirstType | SecondType | ThirdType """ ) assert print_all_ast_nodes(some_union) == union_sdl
def correctly_extend_object_type(): object_sdl = dedent(""" type SomeObject implements Foo { first: String } extend type SomeObject implements Bar { second: Int } extend type SomeObject implements Baz { third: Float } """) schema = build_schema(object_sdl + dedent(""" interface Foo interface Bar interface Baz """)) some_object = assert_object_type(schema.get_type("SomeObject")) assert print_type(some_object) + "\n" == dedent(""" type SomeObject implements Foo & Bar & Baz { first: String second: Int third: Float } """) assert print_all_ast_nodes(some_object) == object_sdl
def correctly_extend_union_type(): schema = build_schema( """ union SomeUnion = FirstType extend union SomeUnion = SecondType extend union SomeUnion = ThirdType type FirstType type SecondType type ThirdType """ ) some_union = assert_union_type(schema.get_type("SomeUnion")) assert print_type(some_union) == dedent( """ union SomeUnion = FirstType | SecondType | ThirdType """ ) expect_ast_node(some_union, "union SomeUnion = FirstType") expect_extension_ast_nodes( some_union, dedent( """ extend union SomeUnion = SecondType extend union SomeUnion = ThirdType """ ), )
def correctly_extend_scalar_type(): scalar_sdl = dedent( """ scalar SomeScalar extend scalar SomeScalar @foo extend scalar SomeScalar @bar """ ) schema = build_schema( scalar_sdl + dedent( """ directive @foo on SCALAR directive @bar on SCALAR """ ) ) some_scalar = assert_scalar_type(schema.get_type("SomeScalar")) assert print_type(some_scalar) + "\n" == dedent( """ scalar SomeScalar """ ) assert print_all_ast_nodes(some_scalar) == scalar_sdl
def correctly_extend_scalar_type(): schema = build_schema( """ scalar SomeScalar extend scalar SomeScalar @foo extend scalar SomeScalar @bar directive @foo on SCALAR directive @bar on SCALAR """ ) some_scalar = assert_scalar_type(schema.get_type("SomeScalar")) assert print_type(some_scalar) == dedent( """ scalar SomeScalar """ ) expect_ast_node(some_scalar, "scalar SomeScalar") expect_extension_ast_nodes( some_scalar, dedent( """ extend scalar SomeScalar @foo extend scalar SomeScalar @bar """ ), )
def correctly_extend_object_type(): schema = build_schema( """ type SomeObject implements Foo { first: String } extend type SomeObject implements Bar { second: Int } extend type SomeObject implements Baz { third: Float } interface Foo interface Bar interface Baz """ ) some_object = assert_object_type(schema.get_type("SomeObject")) assert print_type(some_object) == dedent( """ type SomeObject implements Foo & Bar & Baz { first: String second: Int third: Float } """ ) expect_ast_node( some_object, dedent( """ type SomeObject implements Foo { first: String } """ ), ) expect_extension_ast_nodes( some_object, dedent( """ extend type SomeObject implements Bar { second: Int } extend type SomeObject implements Baz { third: Float } """ ), )
def correctly_extend_input_object_type(): schema = build_schema( """ input SomeInput { first: String } extend input SomeInput { second: Int } extend input SomeInput { third: Float } """ ) some_input = assert_input_object_type(schema.get_type("SomeInput")) assert print_type(some_input) == dedent( """ input SomeInput { first: String second: Int third: Float } """ ) expect_ast_node( some_input, dedent( """ input SomeInput { first: String } """ ), ) expect_extension_ast_nodes( some_input, dedent( """ extend input SomeInput { second: Int } extend input SomeInput { third: Float } """ ), )
def correctly_extend_enum_type(): schema = build_schema( """ enum SomeEnum { FIRST } extend enum SomeEnum { SECOND } extend enum SomeEnum { THIRD } """ ) some_enum = assert_enum_type(schema.get_type("SomeEnum")) assert print_type(some_enum) == dedent( """ enum SomeEnum { FIRST SECOND THIRD } """ ) expect_ast_node( some_enum, dedent( """ enum SomeEnum { FIRST } """ ), ) expect_extension_ast_nodes( some_enum, dedent( """ extend enum SomeEnum { SECOND } extend enum SomeEnum { THIRD } """ ), )
def correctly_extend_interface_type(): schema = build_schema( """ interface SomeInterface { first: String } extend interface SomeInterface { second: Int } extend interface SomeInterface { third: Float } """ ) some_interface = assert_interface_type(schema.get_type("SomeInterface")) assert print_type(some_interface) == dedent( """ interface SomeInterface { first: String second: Int third: Float } """ ) expect_ast_node( some_interface, dedent( """ interface SomeInterface { first: String } """ ), ) expect_extension_ast_nodes( some_interface, dedent( """ extend interface SomeInterface { second: Int } extend interface SomeInterface { third: Float } """ ), )