From ea84827ab8c559323b2d0aaba01a950a0bc99b1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9Clgen=20Sar=C4=B1kavak?= Date: Sun, 10 Jan 2021 06:14:54 +0300 Subject: [PATCH] Fix backward compability on GraphQLTestCase._client setter (#1094) --- 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 c783f71..584a08b 100644 --- a/graphene_django/utils/testing.py +++ b/graphene_django/utils/testing.py @@ -101,6 +101,10 @@ class GraphQLTestCase(TestCase): ) @property + def _client(self): + pass + + @_client.getter def _client(self): warnings.warn( "Using `_client` is deprecated in favour of `client`.", @@ -109,6 +113,15 @@ class GraphQLTestCase(TestCase): ) 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 df78321..2ef78f9 100644 --- a/graphene_django/utils/tests/test_testing.py +++ b/graphene_django/utils/tests/test_testing.py @@ -2,12 +2,13 @@ import pytest 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 test_graphql_test_case_deprecated_client(): 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()