ansible-test yamllint: fix UnicodeDecodeError (#55364)

* ansible-test yamllint: fix UnicodeDecodeError

* Conditional fix

(cherry picked from commit f8bebc61c8)
This commit is contained in:
Martin Krizek 2019-04-17 09:13:53 +02:00 committed by Matt Clay
parent c1b640b65d
commit 3ae0296b14

View file

@ -381,7 +381,10 @@ def raw_command(cmd, capture=False, env=None, data=None, cwd=None, explain=False
if communicate: if communicate:
encoding = 'utf-8' encoding = 'utf-8'
data_bytes = data.encode(encoding, 'surrogateescape') if data else None if data is None or isinstance(data, bytes):
data_bytes = data
else:
data_bytes = data.encode(encoding, 'surrogateescape')
stdout_bytes, stderr_bytes = process.communicate(data_bytes) stdout_bytes, stderr_bytes = process.communicate(data_bytes)
stdout_text = stdout_bytes.decode(encoding, str_errors) if stdout_bytes else u'' stdout_text = stdout_bytes.decode(encoding, str_errors) if stdout_bytes else u''
stderr_text = stderr_bytes.decode(encoding, str_errors) if stderr_bytes else u'' stderr_text = stderr_bytes.decode(encoding, str_errors) if stderr_bytes else u''