Esempio n. 1
0
def test_create_schema():
    @strawberry.type
    class User:
        id: strawberry.ID

    @strawberry.field
    def get_user_by_id(info, id: strawberry.ID) -> User:
        return User(id=id)

    Query = create_type("Query", [get_user_by_id])

    schema = strawberry.Schema(query=Query)

    sdl = """
    type Query {
      getUserById(id: ID!): User!
    }

    type User {
      id: ID!
    }
    """

    assert dedent(sdl).strip() == str(schema)

    result = schema.execute_sync("""
        {
            getUserById(id: "TEST") {
                id
            }
        }
    """)

    assert not result.errors
    assert result.data == {"getUserById": {"id": "TEST"}}
Esempio n. 2
0
def test_create_decorator_type():
    @strawberry.field
    def name() -> str:
        return "foo"

    MyType = create_type("MyType", [name])
    definition = MyType._type_definition

    assert len(definition.fields) == 1

    assert definition.fields[0].graphql_name == "name"
    assert definition.fields[0].type == str
Esempio n. 3
0
def test_create_variable_type():
    def get_name() -> str:
        return "foo"

    name = strawberry.field(name="name", resolver=get_name)

    MyType = create_type("MyType", [name])
    definition = MyType._type_definition

    assert len(definition.fields) == 1

    assert definition.fields[0].graphql_name == "name"
    assert definition.fields[0].type == str
Esempio n. 4
0
def test_create_mutation_type():
    @strawberry.type
    class User:
        username: str

    @strawberry.mutation
    def make_user(info, username: str) -> User:
        return User(username=username)

    Mutation = create_type("Mutation", [make_user])
    definition = Mutation._type_definition

    assert len(definition.fields) == 1

    assert definition.fields[0].graphql_name == "makeUser"
    assert definition.fields[0].type == User
Esempio n. 5
0
def test_create_mutation_type_with_params():
    @strawberry.type
    class User:
        username: str

    @strawberry.mutation(name="makeNewUser", description="Make a new user")
    def make_user(info, username: str) -> User:
        return User(username=username)

    Mutation = create_type("Mutation", [make_user])
    definition = Mutation._type_definition

    assert len(definition.fields) == 1

    assert definition.fields[0].graphql_name == "makeNewUser"
    assert definition.fields[0].type == User
    assert definition.fields[0].description == "Make a new user"
Esempio n. 6
0
def test_create_type_field_invalid():
    with pytest.raises(TypeError):
        create_type("MyType", [strawberry.type()])
Esempio n. 7
0
def test_create_type_field_no_name():
    name = strawberry.field()

    with pytest.raises(ValueError):
        create_type("MyType", [name])
Esempio n. 8
0
def test_create_type_empty_list():
    with pytest.raises(ValueError):
        create_type("MyType", [])
Esempio n. 9
0
from strawberry.tools import create_type

from .mutations.login import login
from .mutations.register import register
from .mutations.request_reset_password import request_reset_password
from .mutations.reset_password import reset_password
from .mutations.update_profile import update_profile

Mutation = create_type(
    "Mutation",
    [login, register, request_reset_password, reset_password, update_profile],
)
Esempio n. 10
0
from strawberry.tools import create_type

from .mutations.manage_user_subscription import manage_user_subscription
from .mutations.subscribe_user_to_association import subscribe_user_to_association

Mutation = create_type(
    "Mutation", [subscribe_user_to_association, manage_user_subscription]
)