diff --git a/graphene_django/utils/testing.py b/graphene_django/utils/testing.py index ad9ff35..6cd0e3b 100644 --- a/graphene_django/utils/testing.py +++ b/graphene_django/utils/testing.py @@ -4,6 +4,7 @@ import warnings from django.test import Client, TestCase, TransactionTestCase from graphene_django.settings import graphene_settings +from graphene_django.utils.utils import _DJANGO_VERSION_AT_LEAST_4_2 DEFAULT_GRAPHQL_URL = "/graphql" @@ -55,8 +56,14 @@ def graphql_query( else: body["variables"] = {"input": input_data} if headers: + header_params = ( + {"headers": headers} if _DJANGO_VERSION_AT_LEAST_4_2 else headers + ) resp = client.post( - graphql_url, json.dumps(body), content_type="application/json", **headers + graphql_url, + json.dumps(body), + content_type="application/json", + **header_params ) else: resp = client.post( diff --git a/graphene_django/utils/utils.py b/graphene_django/utils/utils.py index d7993e7..3b295cd 100644 --- a/graphene_django/utils/utils.py +++ b/graphene_django/utils/utils.py @@ -1,5 +1,6 @@ import inspect +import pkg_resources from django.db import connection, models, transaction from django.db.models.manager import Manager from django.utils.encoding import force_str @@ -145,3 +146,14 @@ def bypass_get_queryset(resolver): """ resolver._bypass_get_queryset = True return resolver + + +def __django_version(): + return pkg_resources.get_distribution("django").parsed_version + + +def __parse_version(v): + return pkg_resources.parse_version(v) + + +_DJANGO_VERSION_AT_LEAST_4_2 = __django_version() >= __parse_version("4.2")