blob: 1f7d11b55cb47a44cb34352db51047054f13b485 [file] [log] [blame]
Brad Bishop6e60e8b2018-02-01 10:27:11 -05001import subprocess
2
3class OETestCalledProcessError(subprocess.CalledProcessError):
4 def __str__(self):
5 def strify(o):
6 if isinstance(o, bytes):
7 return o.decode("utf-8", errors="replace")
8 else:
9 return o
10
11 s = "Command '%s' returned non-zero exit status %d" % (self.cmd, self.returncode)
12 if hasattr(self, "output") and self.output:
13 s = s + "\nStandard Output: " + strify(self.output)
14 if hasattr(self, "stderr") and self.stderr:
15 s = s + "\nStandard Error: " + strify(self.stderr)
16 return s
17
18def errors_have_output():
19 subprocess.CalledProcessError = OETestCalledProcessError