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}"
+                    ),
                 )