2016-06-17 19:29:38 +03:00
|
|
|
import json
|
|
|
|
|
|
|
|
|
|
|
|
def format_response(response):
|
|
|
|
return json.loads(response.content.decode())
|
|
|
|
|
|
|
|
|
|
|
|
def test_client_get_good_query(settings, client):
|
2016-06-19 00:33:04 +03:00
|
|
|
settings.ROOT_URLCONF = 'graphene_django.tests.urls'
|
2016-06-17 19:29:38 +03:00
|
|
|
response = client.get('/graphql', {'query': '{ human { headline } }'})
|
|
|
|
json_response = format_response(response)
|
|
|
|
expected_json = {
|
|
|
|
'data': {
|
|
|
|
'human': {
|
|
|
|
'headline': None
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
assert json_response == expected_json
|
|
|
|
|
|
|
|
|
|
|
|
def test_client_get_good_query_with_raise(settings, client):
|
2016-06-19 00:33:04 +03:00
|
|
|
settings.ROOT_URLCONF = 'graphene_django.tests.urls'
|
2016-06-17 19:29:38 +03:00
|
|
|
response = client.get('/graphql', {'query': '{ human { raises } }'})
|
|
|
|
json_response = format_response(response)
|
|
|
|
assert json_response['errors'][0]['message'] == 'This field should raise exception'
|
|
|
|
assert json_response['data']['human']['raises'] is None
|
|
|
|
|
|
|
|
|
|
|
|
def test_client_post_good_query_json(settings, client):
|
2016-06-19 00:33:04 +03:00
|
|
|
settings.ROOT_URLCONF = 'graphene_django.tests.urls'
|
2016-06-17 19:29:38 +03:00
|
|
|
response = client.post(
|
|
|
|
'/graphql', json.dumps({'query': '{ human { headline } }'}), 'application/json')
|
|
|
|
json_response = format_response(response)
|
|
|
|
expected_json = {
|
|
|
|
'data': {
|
|
|
|
'human': {
|
|
|
|
'headline': None
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
assert json_response == expected_json
|
|
|
|
|
|
|
|
|
|
|
|
def test_client_post_good_query_graphql(settings, client):
|
2016-06-19 00:33:04 +03:00
|
|
|
settings.ROOT_URLCONF = 'graphene_django.tests.urls'
|
2016-06-17 19:29:38 +03:00
|
|
|
response = client.post(
|
|
|
|
'/graphql', '{ human { headline } }', 'application/graphql')
|
|
|
|
json_response = format_response(response)
|
|
|
|
expected_json = {
|
|
|
|
'data': {
|
|
|
|
'human': {
|
|
|
|
'headline': None
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
assert json_response == expected_json
|