From e24675e5b7ebba7528760638aa819b23ae20bf43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9Clgen=20Sar=C4=B1kavak?= Date: Sun, 10 Jan 2021 06:16:18 +0300 Subject: [PATCH] Fix backward compability on GraphQLTestCase._client setter (#1093) --- graphene_django/utils/testing.py | 13 +++++++++++ graphene_django/utils/tests/test_testing.py | 25 +++++++++++++++++++-- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/graphene_django/utils/testing.py b/graphene_django/utils/testing.py index b758ac8c7..afe83c2e8 100644 --- a/graphene_django/utils/testing.py +++ b/graphene_django/utils/testing.py @@ -99,6 +99,10 @@ def query(self, query, op_name=None, input_data=None, variables=None, headers=No ) @property + def _client(self): + pass + + @_client.getter def _client(self): warnings.warn( "Using `_client` is deprecated in favour of `client`.", @@ -107,6 +111,15 @@ def _client(self): ) return self.client + @_client.setter + def _client(self, client): + warnings.warn( + "Using `_client` is deprecated in favour of `client`.", + PendingDeprecationWarning, + stacklevel=2, + ) + self.client = client + def assertResponseNoErrors(self, resp, msg=None): """ Assert that the call went through correctly. 200 means the syntax is ok, if there are no `errors`, diff --git a/graphene_django/utils/tests/test_testing.py b/graphene_django/utils/tests/test_testing.py index df7832130..2ef78f99b 100644 --- a/graphene_django/utils/tests/test_testing.py +++ b/graphene_django/utils/tests/test_testing.py @@ -2,12 +2,13 @@ from .. import GraphQLTestCase from ...tests.test_types import with_local_registry +from django.test import Client @with_local_registry -def test_graphql_test_case_deprecated_client(): +def test_graphql_test_case_deprecated_client_getter(): """ - Test that `GraphQLTestCase._client`'s should raise pending deprecation warning. + `GraphQLTestCase._client`' getter should raise pending deprecation warning. """ class TestClass(GraphQLTestCase): @@ -22,3 +23,23 @@ def runTest(self): with pytest.warns(PendingDeprecationWarning): tc._client + + +@with_local_registry +def test_graphql_test_case_deprecated_client_setter(): + """ + `GraphQLTestCase._client`' setter should raise pending deprecation warning. + """ + + class TestClass(GraphQLTestCase): + GRAPHQL_SCHEMA = True + + def runTest(self): + pass + + tc = TestClass() + tc._pre_setup() + tc.setUpClass() + + with pytest.warns(PendingDeprecationWarning): + tc._client = Client()