s4/samba.tests: Extend CalledProcessError class to store STDOUT and STDERR for a...
authorKamen Mazdrashki <kamenim@samba.org>
Sun, 20 Feb 2011 02:15:08 +0000 (04:15 +0200)
committerKamen Mazdrashki <kamenim@samba.org>
Sun, 20 Feb 2011 21:13:11 +0000 (23:13 +0200)
source4/scripting/python/samba/tests/__init__.py

index d6b962c1ce36f1bbf84dce96822ad314114e9cc0..5a0e23daee4f9950ec885d5676ec1b0af1d133bf 100644 (file)
@@ -121,6 +121,19 @@ class ValidNetbiosNameTests(TestCase):
         self.assertFalse(samba.valid_netbios_name("*BLA"))
 
 
+class BlackboxProcessError(subprocess.CalledProcessError):
+    """This exception is raised when a process run by check_output() returns
+    a non-zero exit status. Exception instance should contain
+    the exact exit code (S.returncode), command line (S.cmd),
+    process output (S.stdout) and process error stream (S.stderr)"""
+    def __init__(self, returncode, cmd, stdout, stderr):
+        super(BlackboxProcessError, self).__init__(returncode, cmd)
+        self.stdout = stdout
+        self.stderr = stderr
+    def __str__(self):
+        return "Command '%s'; exit status %d; stdout: '%s'; stderr: '%s'" % (self.cmd, self.returncode,
+                                                                             self.stdout, self.stderr)
+
 class BlackboxTestCase(TestCase):
     """Base test case for blackbox tests."""