summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2017-01-08 04:45:57 +0000
committerGerrit Code Review <review@openstack.org>2017-01-08 04:45:57 +0000
commit1112abe54b126d390fc3600e07b813dfee3a736a (patch)
tree65f19f24583bdddf5d11836f0e304f2f274c3438
parent272f60d8a2cce1ce1158ce241699fe7710d3c4e9 (diff)
parentaf770f17b705a66bd4292b2a54df46ec5fdaa12b (diff)
downloadpython-keystoneclient-1112abe54b126d390fc3600e07b813dfee3a736a.tar.gz
Merge "Do not log binary data during request"
-rw-r--r--keystoneclient/session.py5
-rw-r--r--keystoneclient/tests/unit/test_session.py11
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'