Add tests to assert filter validation
Add test cases to pass valid and invalid filters to server.
If a valid filter is passed, assert server returns the correct
list of resources. If an invalid filter is passed, assert
server returns a 400 response.
Change-Id: I2b8baa93a5587fa036a8a8ab124c216d2dba4444
Related-Bug: #1749820
diff --git a/neutron_tempest_plugin/api/base.py b/neutron_tempest_plugin/api/base.py
index 8ec98cd..474f203 100644
--- a/neutron_tempest_plugin/api/base.py
+++ b/neutron_tempest_plugin/api/base.py
@@ -1167,11 +1167,14 @@
expected_resources[:-1],
self._extract_resources(body))
- def _test_list_validation_filters(self):
- validation_args = {
- 'unknown_filter': 'value',
- }
- body = self.list_method(**validation_args)
- resources = self._extract_resources(body)
- for resource in resources:
- self.assertIn(resource['name'], self.resource_names)
+ @tutils.requires_ext(extension="filter-validation", service="network")
+ def _test_list_validation_filters(
+ self, validation_args, filter_is_valid=True):
+ if not filter_is_valid:
+ self.assertRaises(lib_exc.BadRequest, self.list_method,
+ **validation_args)
+ else:
+ body = self.list_method(**validation_args)
+ resources = self._extract_resources(body)
+ for resource in resources:
+ self.assertIn(resource['name'], self.resource_names)