Fixed #1689 -- correctly handle code with multiple requires_backend_itnerface
diff --git a/tests/conftest.py b/tests/conftest.py
index c4d6b9c..6599a64 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -18,11 +18,13 @@
     if "backend" in metafunc.fixturenames:
         filtered_backends = []
         required = metafunc.function.requires_backend_interface
-        required_interfaces = tuple(
+        required_interfaces = [
             mark.kwargs["interface"] for mark in required
-        )
+        ]
         for backend in selected_backends:
-            if isinstance(backend, required_interfaces):
+            if all(
+                isinstance(backend, iface) for iface in required_interfaces
+            ):
                 filtered_backends.append(backend)
 
         # If you pass an empty list to parametrize Bad Things(tm) happen