Fix to handle multiple instances of @pytest.mark_requires_backend_interface
diff --git a/tests/conftest.py b/tests/conftest.py
index 7f8e71d..31cdb63 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -33,13 +33,16 @@
required = item.keywords.get("requires_backend_interface")
if (
required is not None and
- "backend" in item.funcargs and
- not isinstance(item.funcargs["backend"], required.kwargs['interface'])
+ "backend" in item.funcargs
):
- pytest.skip("{0} backend does not support {1}".format(
- item.funcargs["backend"],
- required.kwargs['interface'].__name__
- ))
+ required_interfaces = tuple(
+ kwargs["interface"] for args, kwargs in required._arglist
+ )
+ if not isinstance(item.funcargs["backend"], required_interfaces):
+ pytest.skip("{0} backend does not support {1}".format(
+ item.funcargs["backend"],
+ ", ".join(iface.__name__ for iface in required_interfaces)
+ ))
check_backend_support(item)