[elbe-devel] [PATCH 01/10] test: move testspecific system() implementation to test command
Bastian Germann
bage at linutronix.de
Thu Apr 1 18:04:38 CEST 2021
Am 01.04.21 um 13:15 schrieb Torben Hohn:
> The implementation of the test base classes currently resides
> in elbepack.commands.test. Move the system() implementation
> there.
>
> Also change the Exception raised to ElbeTestException and allow
> the test code to log the stdout of the test when the exception
> is caught.
>
> Signed-off-by: Torben Hohn <torben.hohn at linutronix.de>
Reviewed-by: Bastian Germann <bage at linutronix.de>
> ---
> elbepack/commands/test.py | 19 +++++++++++++++++++
> elbepack/tests/test_xml.py | 8 +-------
> 2 files changed, 20 insertions(+), 7 deletions(-)
>
> diff --git a/elbepack/commands/test.py b/elbepack/commands/test.py
> index 8c8585302..c67f7c04a 100644
> --- a/elbepack/commands/test.py
> +++ b/elbepack/commands/test.py
> @@ -14,12 +14,31 @@ import warnings
>
> import junit_xml as junit
>
> +from elbepack.shellhelper import command_out
> +
> class ElbeTestLevel(enum.IntEnum):
> BASE = enum.auto()
> EXTEND = enum.auto()
> INITVM = enum.auto()
> FULL = enum.auto()
>
> +class ElbeTestException(Exception):
> +
> + def __init__(self, cmd, ret, out):
> + self.cmd = cmd
> + self.ret = ret
> + self.out = out
> +
> + def __repr__(self):
> + return f"ElbeTestException: \"{self.cmd}\" returns {self.ret}"
> +
> + def __str__(self):
> + return f"ElbeTestException: \"{self.cmd}\" returns {self.ret}"
> +
> +def system(cmd, allow_fail=False):
> + ret, out = command_out(cmd)
> + if ret != 0 and not allow_fail:
> + raise ElbeTestException(cmd, ret, out)
>
> class ElbeTestCase(unittest.TestCase):
>
> diff --git a/elbepack/tests/test_xml.py b/elbepack/tests/test_xml.py
> index 2b4881925..0f3069a37 100644
> --- a/elbepack/tests/test_xml.py
> +++ b/elbepack/tests/test_xml.py
> @@ -8,13 +8,7 @@ import unittest
> import tempfile
>
> from elbepack.directories import elbe_dir, elbe_exe
> -from elbepack.commands.test import ElbeTestCase, ElbeTestLevel
> -from elbepack.shellhelper import command_out
> -
> -def system(cmd, allow_fail=False):
> - ret, out = command_out(cmd)
> - if ret != 0 and not allow_fail:
> - raise Exception(out)
> +from elbepack.commands.test import ElbeTestCase, ElbeTestLevel, system
>
> @unittest.skipIf(ElbeTestCase.level < ElbeTestLevel.INITVM,
> "Test level not set to INITVM")
>
More information about the elbe-devel
mailing list