# | |
# SPDX-License-Identifier: MIT | |
# | |
import subprocess | |
class OETestCalledProcessError(subprocess.CalledProcessError): | |
def __str__(self): | |
def strify(o): | |
if isinstance(o, bytes): | |
return o.decode("utf-8", errors="replace") | |
else: | |
return o | |
s = "Command '%s' returned non-zero exit status %d" % (self.cmd, self.returncode) | |
if hasattr(self, "output") and self.output: | |
s = s + "\nStandard Output: " + strify(self.output) | |
if hasattr(self, "stderr") and self.stderr: | |
s = s + "\nStandard Error: " + strify(self.stderr) | |
return s | |
def errors_have_output(): | |
subprocess.CalledProcessError = OETestCalledProcessError |