Пример #1
0
def test_graphql_execution_exception(monkeypatch, api_client):
    def mocked_execute(*args, **kwargs):
        raise IOError("Spanish inquisition")

    monkeypatch.setattr("graphql.backend.core.execute_and_validate",
                        mocked_execute)
    response = api_client.post_graphql("{ shop { name }}")
    assert response.status_code == 400
    content = _get_graphql_content_from_response(response)
    assert content["errors"][0]["message"] == "Spanish inquisition"
Пример #2
0
def test_invalid_request_body_with_debug(client):
    data = "invalid-data"
    response = client.post(API_PATH, data, content_type="application/json")
    assert response.status_code == 400
    content = _get_graphql_content_from_response(response)
    errors = content.get("errors")
    assert errors == [{
        "extensions": {
            "exception": {
                "code": "str",
                "stacktrace": []
            }
        },
        "message": "Unable to parse query.",
    }]
Пример #3
0
def test_require_pagination(api_client):
    query = """
    query {
        products {
            edges {
                node {
                    name
                }
            }
        }
    }
    """
    response = api_client.post_graphql(query)
    content = _get_graphql_content_from_response(response)
    assert "errors" in content
    assert content["errors"][0]["message"] == (
        "You must provide a `first` or `last` value to properly paginate the "
        "`products` connection.")
Пример #4
0
def test_invalid_request_body_non_debug(client):
    data = "invalid-data"
    response = client.post(API_PATH, data, content_type="application/json")
    assert response.status_code == 400
    content = _get_graphql_content_from_response(response)
    assert "errors" in content
Пример #5
0
def test_query_is_dict(client):
    data = {"query": {"type": "dict"}}
    response = client.post(API_PATH, data, content_type="application/json")
    assert response.status_code == 400
    content = _get_graphql_content_from_response(response)
    assert content["errors"][0]["message"] == "Must provide a query string."
Пример #6
0
def test_no_query(client):
    response = client.post(API_PATH, "", content_type="application/json")
    assert response.status_code == 400
    content = _get_graphql_content_from_response(response)
    assert content["errors"][0]["message"] == "Must provide a query string."
Пример #7
0
def test_invalid_query(api_client):
    query = "query { invalid }"
    response = api_client.post_graphql(query, check_no_permissions=False)
    assert response.status_code == 400
    content = _get_graphql_content_from_response(response)
    assert "errors" in content