@@ -74,36 +74,31 @@ def make_executable(filename):
7474
7575
7676class CalledProcessError (RuntimeError ):
77- def __init__ (self , returncode , cmd , expected_returncode , output = None ):
77+ def __init__ (self , returncode , cmd , expected_returncode , stdout , stderr ):
7878 super (CalledProcessError , self ).__init__ (
79- returncode , cmd , expected_returncode , output ,
79+ returncode , cmd , expected_returncode , stdout , stderr ,
8080 )
8181 self .returncode = returncode
8282 self .cmd = cmd
8383 self .expected_returncode = expected_returncode
84- self .output = output
84+ self .stdout = stdout
85+ self .stderr = stderr
8586
8687 def to_bytes (self ):
87- output = []
88- for maybe_text in self .output :
89- if maybe_text :
90- output .append (
91- b'\n ' +
92- five .to_bytes (maybe_text ).replace (b'\n ' , b'\n ' ),
93- )
88+ def _indent_or_none (part ):
89+ if part :
90+ return b'\n ' + part .replace (b'\n ' , b'\n ' )
9491 else :
95- output . append ( b' (none)')
92+ return b' (none)'
9693
9794 return b'' .join ((
98- five .to_bytes (
99- 'Command: {!r}\n '
100- 'Return code: {}\n '
101- 'Expected return code: {}\n ' .format (
102- self .cmd , self .returncode , self .expected_returncode ,
103- ),
104- ),
105- b'Output: ' , output [0 ], b'\n ' ,
106- b'Errors: ' , output [1 ],
95+ 'command: {!r}\n '
96+ 'return code: {}\n '
97+ 'expected return code: {}\n ' .format (
98+ self .cmd , self .returncode , self .expected_returncode ,
99+ ).encode ('UTF-8' ),
100+ b'stdout:' , _indent_or_none (self .stdout ), b'\n ' ,
101+ b'stderr:' , _indent_or_none (self .stderr ),
107102 ))
108103
109104 def to_text (self ):
@@ -143,9 +138,7 @@ def cmd_output_b(*cmd, **kwargs):
143138 returncode = proc .returncode
144139
145140 if retcode is not None and retcode != returncode :
146- raise CalledProcessError (
147- returncode , cmd , retcode , output = (stdout_b , stderr_b ),
148- )
141+ raise CalledProcessError (returncode , cmd , retcode , stdout_b , stderr_b )
149142
150143 return returncode , stdout_b , stderr_b
151144
0 commit comments