diff options
| author | Jenkins <jenkins@review.openstack.org> | 2017-01-10 00:33:50 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2017-01-10 00:33:50 +0000 |
| commit | eb9d39d0f53fac3a4831d7a2b7b688c88d3e512c (patch) | |
| tree | 974021e67f294cc1cf101383ba1de566be7eaec5 | |
| parent | 918abd31c744bdee7ec3166c37a7ad0fcb782a4d (diff) | |
| parent | ad4c0198efd4131f5b2a042fd8de7a076565ab74 (diff) | |
| download | python-keystoneclient-eb9d39d0f53fac3a4831d7a2b7b688c88d3e512c.tar.gz | |
Merge "Do not log binary data during request" into stable/newton
| -rw-r--r-- | keystoneclient/session.py | 5 | ||||
| -rw-r--r-- | keystoneclient/tests/unit/test_session.py | 11 |
2 files changed, 9 insertions, 7 deletions
diff --git a/keystoneclient/session.py b/keystoneclient/session.py index 5002518..6ed5503 100644 --- a/keystoneclient/session.py +++ b/keystoneclient/session.py @@ -201,6 +201,11 @@ class Session(object): % self._process_header(header)) if data: + if isinstance(data, six.binary_type): + try: + data = data.decode("ascii") + except UnicodeDecodeError: + data = "<binary_data>" string_parts.append("-d '%s'" % data) try: logger.debug(' '.join(string_parts)) diff --git a/keystoneclient/tests/unit/test_session.py b/keystoneclient/tests/unit/test_session.py index 2ef216b..3ada765 100644 --- a/keystoneclient/tests/unit/test_session.py +++ b/keystoneclient/tests/unit/test_session.py @@ -1,3 +1,5 @@ +# -*- coding: utf-8 -*- +# # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at @@ -195,7 +197,7 @@ class SessionTests(utils.TestCase): session = client_session.Session(verify=False) body = 'RESP' - data = u'unicode_data' + data = u'αβγδ' self.stub_url('POST', text=body) session.post(self.TEST_URL, data=data) @@ -220,12 +222,7 @@ class SessionTests(utils.TestCase): # raise a UnicodeDecodeError) session.post(unicode(self.TEST_URL), data=data) - self.assertIn("Replaced characters that could not be decoded" - " in log output", self.logger.output) - - # Our data payload should have changed to - # include the replacement char - self.assertIn(u"-d 'my data\ufffd'", self.logger.output) + self.assertNotIn('my data', self.logger.output) def test_logging_cacerts(self): path_to_certs = '/path/to/certs' |
