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