pytest-infra: fix failures

pytest-infra 10.0.0 release changed the get_variables() behavior which led to CI failures
(https://github.com/pytest-dev/pytest-testinfra/pull/724)
Starting of now all groups the host is part of and not only the direct parent groups are
returned by get_variables()

Signed-off-by: Teoman ONAY <tonay@ibm.com>
(cherry picked from commit 37a82225f7)
pull/7558/head
Teoman ONAY 2024-01-15 22:27:17 +01:00 committed by Guillaume Abrioux
parent bc28ebd498
commit 6ba0c733e6
1 changed files with 6 additions and 2 deletions

View File

@ -117,6 +117,10 @@ def node(host, request):
'dev': 99 'dev': 99
} }
sanitized_group_names = group_names
if 'all' in sanitized_group_names:
sanitized_group_names.remove('all')
# capture the initial/default state # capture the initial/default state
test_is_applicable = False test_is_applicable = False
for marker in request.node.iter_markers(): for marker in request.node.iter_markers():
@ -133,7 +137,7 @@ def node(host, request):
if request.node.get_closest_marker('rbdmirror_secondary') and not ceph_rbd_mirror_remote_user: # noqa E501 if request.node.get_closest_marker('rbdmirror_secondary') and not ceph_rbd_mirror_remote_user: # noqa E501
pytest.skip('Not a valid test for a non-secondary rbd-mirror node') pytest.skip('Not a valid test for a non-secondary rbd-mirror node')
if request.node.get_closest_marker('ceph_crash') and group_names in [['nfss'], ['iscsigws'], ['clients'], ['monitoring']]: if request.node.get_closest_marker('ceph_crash') and sanitized_group_names in [['nfss'], ['iscsigws'], ['clients'], ['monitoring']]:
pytest.skip('Not a valid test for nfs, client or iscsigw nodes') pytest.skip('Not a valid test for nfs, client or iscsigw nodes')
if request.node.get_closest_marker("no_docker") and docker: if request.node.get_closest_marker("no_docker") and docker:
@ -148,7 +152,7 @@ def node(host, request):
pytest.skip( pytest.skip(
"Not a valid test with dashboard disabled") "Not a valid test with dashboard disabled")
if request.node.get_closest_marker("dashboard") and group_names == ['clients']: if request.node.get_closest_marker("dashboard") and sanitized_group_names == ['clients']:
pytest.skip('Not a valid test for client node') pytest.skip('Not a valid test for client node')
data = dict( data = dict(