nixos/tests: fix succeed() with multiple commands

we previously immediately returned the first commands output, and didn't
execute any of the other commands.

Now, return the last commands output.
This should be documented in the method docstring.
This commit is contained in:
Florian Klink 2019-11-11 01:24:49 +01:00
parent 1782f6c826
commit a8e9a93493

View File

@ -381,15 +381,17 @@ class Machine:
def succeed(self, *commands): def succeed(self, *commands):
"""Execute each command and check that it succeeds.""" """Execute each command and check that it succeeds."""
output = ""
for command in commands: for command in commands:
with self.nested("must succeed: {}".format(command)): with self.nested("must succeed: {}".format(command)):
status, output = self.execute(command) (status, out) = self.execute(command)
if status != 0: if status != 0:
self.log("output: {}".format(output)) self.log("output: {}".format(out))
raise Exception( raise Exception(
"command `{}` failed (exit code {})".format(command, status) "command `{}` failed (exit code {})".format(command, status)
) )
return output output += out
return output
def fail(self, *commands): def fail(self, *commands):
"""Execute each command and check that it fails.""" """Execute each command and check that it fails."""