diff options
author | Jenkins <jenkins@review.openstack.org> | 2017-01-08 04:45:57 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2017-01-08 04:45:57 +0000 |
commit | 1112abe54b126d390fc3600e07b813dfee3a736a (patch) | |
tree | 65f19f24583bdddf5d11836f0e304f2f274c3438 | |
parent | 272f60d8a2cce1ce1158ce241699fe7710d3c4e9 (diff) | |
parent | af770f17b705a66bd4292b2a54df46ec5fdaa12b (diff) | |
download | python-keystoneclient-1112abe54b126d390fc3600e07b813dfee3a736a.tar.gz |
Merge "Do not log binary data during request"
-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 1e70a53..0f57383 100644 --- a/keystoneclient/session.py +++ b/keystoneclient/session.py @@ -203,6 +203,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 168cbb7..909cf97 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 @@ -239,7 +241,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) @@ -264,12 +266,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' |