mirror of
https://github.com/graphql-python/graphene.git
synced 2024-11-27 20:13:57 +03:00
7dd8305bdf
Changed in https://github.com/graphql-python/graphql-core/pull/185 , the docs here were out of date, as were the tests.
183 lines
3.6 KiB
Python
183 lines
3.6 KiB
Python
from graphene.test import Client
|
|
|
|
from ..data import setup
|
|
from ..schema import schema
|
|
|
|
setup()
|
|
|
|
client = Client(schema)
|
|
|
|
|
|
def test_hero_name_query(snapshot):
|
|
query = """
|
|
query HeroNameQuery {
|
|
hero {
|
|
name
|
|
}
|
|
}
|
|
"""
|
|
snapshot.assert_match(client.execute(query))
|
|
|
|
|
|
def test_hero_name_and_friends_query(snapshot):
|
|
query = """
|
|
query HeroNameAndFriendsQuery {
|
|
hero {
|
|
id
|
|
name
|
|
friends {
|
|
name
|
|
}
|
|
}
|
|
}
|
|
"""
|
|
snapshot.assert_match(client.execute(query))
|
|
|
|
|
|
def test_nested_query(snapshot):
|
|
query = """
|
|
query NestedQuery {
|
|
hero {
|
|
name
|
|
friends {
|
|
name
|
|
appearsIn
|
|
friends {
|
|
name
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"""
|
|
snapshot.assert_match(client.execute(query))
|
|
|
|
|
|
def test_fetch_luke_query(snapshot):
|
|
query = """
|
|
query FetchLukeQuery {
|
|
human(id: "1000") {
|
|
name
|
|
}
|
|
}
|
|
"""
|
|
snapshot.assert_match(client.execute(query))
|
|
|
|
|
|
def test_fetch_some_id_query(snapshot):
|
|
query = """
|
|
query FetchSomeIDQuery($someId: String!) {
|
|
human(id: $someId) {
|
|
name
|
|
}
|
|
}
|
|
"""
|
|
params = {"someId": "1000"}
|
|
snapshot.assert_match(client.execute(query, variables=params))
|
|
|
|
|
|
def test_fetch_some_id_query2(snapshot):
|
|
query = """
|
|
query FetchSomeIDQuery($someId: String!) {
|
|
human(id: $someId) {
|
|
name
|
|
}
|
|
}
|
|
"""
|
|
params = {"someId": "1002"}
|
|
snapshot.assert_match(client.execute(query, variables=params))
|
|
|
|
|
|
def test_invalid_id_query(snapshot):
|
|
query = """
|
|
query humanQuery($id: String!) {
|
|
human(id: $id) {
|
|
name
|
|
}
|
|
}
|
|
"""
|
|
params = {"id": "not a valid id"}
|
|
snapshot.assert_match(client.execute(query, variables=params))
|
|
|
|
|
|
def test_fetch_luke_aliased(snapshot):
|
|
query = """
|
|
query FetchLukeAliased {
|
|
luke: human(id: "1000") {
|
|
name
|
|
}
|
|
}
|
|
"""
|
|
snapshot.assert_match(client.execute(query))
|
|
|
|
|
|
def test_fetch_luke_and_leia_aliased(snapshot):
|
|
query = """
|
|
query FetchLukeAndLeiaAliased {
|
|
luke: human(id: "1000") {
|
|
name
|
|
}
|
|
leia: human(id: "1003") {
|
|
name
|
|
}
|
|
}
|
|
"""
|
|
snapshot.assert_match(client.execute(query))
|
|
|
|
|
|
def test_duplicate_fields(snapshot):
|
|
query = """
|
|
query DuplicateFields {
|
|
luke: human(id: "1000") {
|
|
name
|
|
homePlanet
|
|
}
|
|
leia: human(id: "1003") {
|
|
name
|
|
homePlanet
|
|
}
|
|
}
|
|
"""
|
|
snapshot.assert_match(client.execute(query))
|
|
|
|
|
|
def test_use_fragment(snapshot):
|
|
query = """
|
|
query UseFragment {
|
|
luke: human(id: "1000") {
|
|
...HumanFragment
|
|
}
|
|
leia: human(id: "1003") {
|
|
...HumanFragment
|
|
}
|
|
}
|
|
fragment HumanFragment on Human {
|
|
name
|
|
homePlanet
|
|
}
|
|
"""
|
|
snapshot.assert_match(client.execute(query))
|
|
|
|
|
|
def test_check_type_of_r2(snapshot):
|
|
query = """
|
|
query CheckTypeOfR2 {
|
|
hero {
|
|
__typename
|
|
name
|
|
}
|
|
}
|
|
"""
|
|
snapshot.assert_match(client.execute(query))
|
|
|
|
|
|
def test_check_type_of_luke(snapshot):
|
|
query = """
|
|
query CheckTypeOfLuke {
|
|
hero(episode: EMPIRE) {
|
|
__typename
|
|
name
|
|
}
|
|
}
|
|
"""
|
|
snapshot.assert_match(client.execute(query))
|