diff --git a/nova/tests/fixtures.py b/nova/tests/fixtures.py
index 35dfe89cd..6df93db4c 100644
--- a/nova/tests/fixtures.py
+++ b/nova/tests/fixtures.py
@@ -1216,6 +1216,13 @@ class NeutronFixture(fixtures.Fixture):
         else:
             return None
 
+    def _filter_ports(self, **_params):
+        ports = copy.deepcopy(self._ports)
+        for opt in _params:
+            filtered_ports = [p for p in ports if p.get(opt) == _params[opt]]
+            ports = filtered_ports
+        return {'ports': ports}
+
     def list_extensions(self, *args, **kwargs):
         return copy.deepcopy({'extensions': self._extensions})
 
@@ -1234,7 +1241,7 @@ class NeutronFixture(fixtures.Fixture):
         return copy.deepcopy({'networks': self._networks})
 
     def list_ports(self, retrieve_all=True, **_params):
-        return copy.deepcopy({'ports': self._ports})
+        return self._filter_ports(**_params)
 
     def list_subnets(self, retrieve_all=True, **_params):
         return copy.deepcopy({'subnets': self._subnets})