On 8/19/19 4:18 PM, Max Reitz wrote:
> This lets tests use skip_if_unsupported() with a potentially variable
> list of required formats.
>
> Suggested-by: Kevin Wolf <kw...@redhat.com>
> Signed-off-by: Max Reitz <mre...@redhat.com>
> ---
> tests/qemu-iotests/iotests.py | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
> index 726f904f50..8f315538e9 100644
> --- a/tests/qemu-iotests/iotests.py
> +++ b/tests/qemu-iotests/iotests.py
> @@ -893,8 +893,12 @@ def skip_if_unsupported(required_formats=[],
> read_only=False):
> Runs the test if all the required formats are whitelisted'''
> def skip_test_decorator(func):
> def func_wrapper(*args, **kwargs):
> - usf_list = list(set(required_formats) -
> - set(supported_formats(read_only)))
> + if callable(required_formats):
> + fmts = required_formats(args[0])
> + else:
> + fmts = required_formats
> +
> + usf_list = list(set(fmts) - set(supported_formats(read_only)))
> if usf_list:
> args[0].case_skip('{}: formats {} are not
> whitelisted'.format(
> args[0], usf_list))
>
I am required to inform you that this is in direct violation of the
pythonista treaty of 2007; which mandates that you try to call and fail
instead of attempting to gracefully check ahead of time.
Luckily, I am not fond of such rules.
Reviewed-by: John Snow <js...@redhat.com>