Browse Source

oeqa: fix OETestCalledProcessError for check_output method

Per documentation, subprocess.CalledProcessError exception has stderr
filled out only for run method, it's None for check_output method.
So serialize it only if it's not None.

Avoids:
  File "<poky-dir>/meta/lib/oeqa/utils/subprocesstweak.py", line 15, in __str__
    s = s + "\nStandard Error: " + strify(self.stderr)
        ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
TypeError: can only concatenate str (not "NoneType") to str

(From OE-Core rev: d13f444468b4b10f913b3cf01d7d13ef9d42838e)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Peter Marko 2 months ago
parent
commit
1987d7943e
1 changed files with 3 additions and 1 deletions
  1. 3 1
      meta/lib/oeqa/utils/subprocesstweak.py

+ 3 - 1
meta/lib/oeqa/utils/subprocesstweak.py

@@ -12,7 +12,9 @@ class OETestCalledProcessError(subprocess.CalledProcessError):
 
         s = super().__str__()
         s = s + "\nStandard Output: " + strify(self.output)
-        s = s + "\nStandard Error: " + strify(self.stderr)
+        # stderr is not available for check_output method
+        if self.stderr != None:
+            s = s + "\nStandard Error: " + strify(self.stderr)
         return s
 
 def errors_have_output():