diff options
author | Brant Knudson <bknudson@us.ibm.com> | 2015-07-26 06:53:58 -0500 |
---|---|---|
committer | Brant Knudson <bknudson@us.ibm.com> | 2015-08-04 09:56:44 -0500 |
commit | eaa7ddd7443ca166f6646e808dcad959811d158b (patch) | |
tree | affc727316685ad9b21ac773812f5f5ae58742a6 | |
parent | 0c2fef51d2b90df088d30e9b6c5079caae7c6578 (diff) | |
download | python-keystoneclient-eaa7ddd7443ca166f6646e808dcad959811d158b.tar.gz |
Proper deprecation for HTTPClient session and adapter properties
HTTPClient's forwarded session and adapter properties weren't
properly deprecated since the deprecations was only mentioned in
the docstring. Proper deprecation requires use of warnings/
debtcollector and documentation.
bp deprecations
Change-Id: Iea76d7bbc3bdeb13f7fdb097f13e007b4dd85c8d
-rw-r--r-- | keystoneclient/httpclient.py | 21 | ||||
-rw-r--r-- | keystoneclient/tests/unit/test_discovery.py | 3 |
2 files changed, 18 insertions, 6 deletions
diff --git a/keystoneclient/httpclient.py b/keystoneclient/httpclient.py index 9148f80..c663535 100644 --- a/keystoneclient/httpclient.py +++ b/keystoneclient/httpclient.py @@ -830,9 +830,6 @@ class HTTPClient(baseclient.Client, base.BaseAuthPlugin): """ return self._cs_request(url, 'DELETE', **kwargs) - # DEPRECATIONS: The following methods are no longer directly supported - # but maintained for compatibility purposes. - deprecated_session_variables = {'original_ip': None, 'cert': None, 'timeout': None, @@ -841,12 +838,15 @@ class HTTPClient(baseclient.Client, base.BaseAuthPlugin): deprecated_adapter_variables = {'region_name': None} def __getattr__(self, name): - # FIXME(jamielennox): provide a proper deprecated warning try: var_name = self.deprecated_session_variables[name] except KeyError: pass else: + warnings.warn( + 'The %s session variable is deprecated as of the 1.7.0 ' + 'release and may be removed in the 2.0.0 release' % name, + DeprecationWarning) return getattr(self.session, var_name or name) try: @@ -854,17 +854,24 @@ class HTTPClient(baseclient.Client, base.BaseAuthPlugin): except KeyError: pass else: + warnings.warn( + 'The %s adapter variable is deprecated as of the 1.7.0 ' + 'release and may be removed in the 2.0.0 release' % name, + DeprecationWarning) return getattr(self._adapter, var_name or name) raise AttributeError(_("Unknown Attribute: %s") % name) def __setattr__(self, name, val): - # FIXME(jamielennox): provide a proper deprecated warning try: var_name = self.deprecated_session_variables[name] except KeyError: pass else: + warnings.warn( + 'The %s session variable is deprecated as of the 1.7.0 ' + 'release and may be removed in the 2.0.0 release' % name, + DeprecationWarning) return setattr(self.session, var_name or name) try: @@ -872,6 +879,10 @@ class HTTPClient(baseclient.Client, base.BaseAuthPlugin): except KeyError: pass else: + warnings.warn( + 'The %s adapter variable is deprecated as of the 1.7.0 ' + 'release and may be removed in the 2.0.0 release' % name, + DeprecationWarning) return setattr(self._adapter, var_name or name) super(HTTPClient, self).__setattr__(name, val) diff --git a/keystoneclient/tests/unit/test_discovery.py b/keystoneclient/tests/unit/test_discovery.py index 6a76d8f..34901ba 100644 --- a/keystoneclient/tests/unit/test_discovery.py +++ b/keystoneclient/tests/unit/test_discovery.py @@ -472,7 +472,8 @@ class ClientDiscoveryTests(utils.TestCase): cl = self.assertCreatesV2(auth_url=BASE_URL, **kwargs) - self.assertEqual(cl.original_ip, '100') + with self.deprecations.expect_deprecations_here(): + self.assertEqual(cl.original_ip, '100') self.assertEqual(cl.stale_duration, 15) self.assertFalse(cl.use_keyring) |