diff --git a/graphene_django/tests/test_views.py b/graphene_django/tests/test_views.py index db6cc4e..a85e3b3 100644 --- a/graphene_django/tests/test_views.py +++ b/graphene_django/tests/test_views.py @@ -1,6 +1,8 @@ import json import pytest +from mock import patch +import django.http try: from urllib import urlencode @@ -558,3 +560,15 @@ def test_passes_request_into_context_request(client): assert response.status_code == 200 assert response_json(response) == {"data": {"request": "testing"}} + + +def test_response_500(client): + with pytest.raises(RuntimeError), patch('graphql.backend.core.execute_and_validate', side_effect=RuntimeError): + response = client.get(url_string(query="{request}", q="testing")) + + +def test_response_500_handler(client): + import graphene_django.views + response = graphene_django.views.server_error(django.http.HttpRequest()) + assert response.status_code == 500 + assert response_json(response) == {"errors": ["server error"]} diff --git a/graphene_django/tests/urls.py b/graphene_django/tests/urls.py index 66b3fc4..3028637 100644 --- a/graphene_django/tests/urls.py +++ b/graphene_django/tests/urls.py @@ -6,3 +6,5 @@ urlpatterns = [ url(r"^graphql/batch", GraphQLView.as_view(batch=True)), url(r"^graphql", GraphQLView.as_view(graphiql=True)), ] + +handler500 = 'graphene_django.views.server_error'