test_support.requires(): Instead of raising TestSkipped, raise a new
exception, ResourceDenied. This is used to distinguish between tests that
are skipped for other reasons (platform support, missing data, etc.) from
those that are skipped because a "resource" has not been enabled. This
prevents those tests from being reported as unexpected skips for the
platform; those should only be considered unexpected skips if the resource
were enabled.
diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py
index 8169533..8ac3851 100644
--- a/Lib/test/test_support.py
+++ b/Lib/test/test_support.py
@@ -21,6 +21,14 @@
TestFailed.
"""
+class ResourceDenied(TestSkipped):
+ """Test skipped because it requested a disallowed resource.
+
+ This is raised when a test calls requires() for a resource that
+ has not be enabled. It is used to distinguish between expected
+ and unexpected skips.
+ """
+
verbose = 1 # Flag set to 0 by regrtest.py
use_resources = None # Flag set to [] by regrtest.py
@@ -57,7 +65,7 @@
if not is_resource_enabled(resource):
if msg is None:
msg = "Use of the `%s' resource not enabled" % resource
- raise TestSkipped(msg)
+ raise ResourceDenied(msg)
FUZZ = 1e-6