1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
from __future__ import annotations
from typing import Literal
import pytest
from strawberry.http import GraphQLHTTPResponse
from strawberry.types import ExecutionResult
from tests.views.schema import schema
from .clients.base import HttpClient
def process_result(result: ExecutionResult) -> GraphQLHTTPResponse:
if result.data:
return {
"data": {key.upper(): result for key, result in result.data.items()},
}
return {}
@pytest.fixture
def http_client(http_client_class) -> HttpClient:
return http_client_class(schema, result_override=process_result)
@pytest.mark.parametrize("method", ["get", "post"])
async def test_custom_process_result(
method: Literal["get", "post"], http_client: HttpClient
):
response = await http_client.query(
method=method,
query="{ hello }",
)
assert response.json["data"] == {"HELLO": "Hello world"}
|