Refs #30116 -- Simplified stdout/stderr decoding with subprocess.run()'s encoding argument.

The encoding argument has been available since Python 3.6.
https://docs.python.org/3/library/subprocess.html#subprocess.run
This commit is contained in:
Jon Dufresne 2019-11-02 08:00:10 -07:00 committed by Mariusz Felisiak
parent 5a856669bf
commit e0e88ceaaa
2 changed files with 10 additions and 7 deletions

View File

@ -124,14 +124,17 @@ def lang_stats(resources=None, languages=None):
p = run( p = run(
['msgfmt', '-vc', '-o', '/dev/null', po_path], ['msgfmt', '-vc', '-o', '/dev/null', po_path],
stdout=PIPE, stderr=PIPE, stdout=PIPE, stderr=PIPE,
env={'LANG': 'C'} env={'LANG': 'C'},
encoding='utf-8',
) )
if p.returncode == 0: if p.returncode == 0:
# msgfmt output stats on stderr # msgfmt output stats on stderr
print("%s: %s" % (lang, p.stderr.decode().strip())) print('%s: %s' % (lang, p.stderr.strip()))
else: else:
print("Errors happened when checking %s translation for %s:\n%s" % ( print(
lang, name, p.stderr.decode())) 'Errors happened when checking %s translation for %s:\n%s'
% (lang, name, p.stderr)
)
def fetch(resources=None, languages=None): def fetch(resources=None, languages=None):

View File

@ -16,7 +16,7 @@ class PostgresIntegrationTests(PostgreSQLSimpleTestCase):
stdout=subprocess.DEVNULL, stdout=subprocess.DEVNULL,
stderr=subprocess.PIPE, stderr=subprocess.PIPE,
cwd=os.path.dirname(__file__), cwd=os.path.dirname(__file__),
env=test_environ env=test_environ,
encoding='utf-8',
) )
stderr = '\n'.join([e.decode() for e in result.stderr.splitlines()]) self.assertEqual(result.returncode, 0, msg=result.stderr)
self.assertEqual(result.returncode, 0, msg=stderr)