Esempio n. 1
0
    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
Esempio n. 2
0
    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
Esempio n. 3
0
    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
Esempio n. 4
0
    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
Esempio n. 5
0
    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
            """
            ),
        )
Esempio n. 7
0
    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
            }
            """
            ),
        )