Merge "Adding better error messages to microversion tests"
diff --git a/ironic_tempest_plugin/tests/api/admin/test_microversion_enforcement.py b/ironic_tempest_plugin/tests/api/admin/test_microversion_enforcement.py
index 19235a4..6dd9982 100644
--- a/ironic_tempest_plugin/tests/api/admin/test_microversion_enforcement.py
+++ b/ironic_tempest_plugin/tests/api/admin/test_microversion_enforcement.py
@@ -31,11 +31,16 @@
"""Mixin class containing shared microversion test functionality."""
def _microversion_test(
- self, method_name, min_version, expected_error, required_args,
- ignore_positive=False):
+ self,
+ method_name,
+ min_version,
+ expected_error,
+ required_args,
+ ignore_positive=False,
+ ):
"""Test methods with invalid API versions"""
- major, minor = map(int, min_version.split('.'))
+ major, minor = map(int, min_version.split("."))
invalid_versions = []
if minor >= 11:
invalid_versions.append(f"{major}.{minor - 10}")
@@ -68,11 +73,20 @@
)
method = getattr(self.client, method_name)
- self.assertRaises(
- expected_error,
- method,
- **required_args,
- )
+ try:
+ method(**required_args)
+ self.fail(
+ f"Request for microversion {microversion} for "
+ f"{method_name} unexpectedly succeeded. We expected "
+ f"{expected_error.__name__}."
+ )
+ except expected_error:
+ pass # Expected error, test passes
+ except Exception as e:
+ self.fail(
+ f"Request for microversion {microversion} for "
+ f"{method_name} raised unexpected exception: {e}"
+ )
if ignore_positive:
return True
@@ -100,20 +114,21 @@
method(**required_args)
return True
- except expected_error:
+ except expected_error as e:
self.fail(
- f"Method {method_name} failed with "
- f"valid microversion {min_version}"
+ f"Method {method_name} failed with valid "
+ f"microversion {min_version}: {e}"
)
except Exception as e:
# Other exceptions might be expected due to invalid test data
# For example, a 404 might be expected if we're using fake IDs
self.assertNotIsInstance(
- e, expected_error,
+ e,
+ expected_error,
(
- f"Got unexpected {expected_error.__name__} with "
- f"valid microversion {min_version}"
- )
+ f"Got unexpected {expected_error.__name__} with valid "
+ f"microversion {min_version}: {e}"
+ ),
)