graphql-python / graphql-python/graphene

Root Value example doesn't work

Open
#1,303 0 comments 0 reactions 0 assignees View on GitHub
🐛 bug
Dominant language
Python
Stars
8.2k
Forks
818
PR merge metrics
No merged PRs in 30d

Description

The [Root Value](https://docs.graphene-python.org/en/latest/execution/execute/#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.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.