Skip to content

Root Value example doesn't work #1303

Open
@zegelin

Description

@zegelin

The Root Value example in the documentation:

from graphene import ObjectType, Field, Schema

class Query(ObjectType):
    me = Field(User)

    def resolve_user(root, info):
        return {'id': root.id, 'firstName': root.name}

schema = Schema(Query)
user_root = User(id=12, name='bob')
result = schema.execute(
    '''
    query getUser {
        user {
            id
            firstName
            lastName
        }
    }
    ''',
    root=user_root
)
assert result.data['user']['id'] == user_root.id

doesn't work. Throws NameError: name 'User' is not defined.

What's not clear is:

  • Where User is defined -- is it defined somewhere else in the documentation? (hyperlink/inline)
  • The Query field is named me yet the resolver function is named resolve_user.
  • The executed query asks for user (not me).
  • The created User object (assigned to user_root) is constructed to have a name field, yet the query asks for the firstName and lastName fields. Sure, resolve_user returns a dict with id, and firstName, but this adds to the confusion.

Having various combinations of name, firstName and lastName is confusing, especially in an example that doesn't work.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions