good = []
bad = []
skipped = []
+ resource_denieds = []
if findleaks:
try:
bad.append(test)
else:
skipped.append(test)
+ if ok == -2:
+ resource_denieds.append(test)
if findleaks:
gc.collect()
if gc.garbage:
e = _ExpectedSkips()
plat = sys.platform
if e.isvalid():
- surprise = Set(skipped) - e.getexpected()
+ surprise = Set(skipped) - e.getexpected() - Set(resource_denieds)
if surprise:
print count(len(surprise), "skip"), \
"unexpected on", plat + ":"
indirect_test()
finally:
sys.stdout = save_stdout
+ except test_support.ResourceDenied, msg:
+ if not quiet:
+ print test, "skipped --", msg
+ sys.stdout.flush()
+ return -2
except (ImportError, test_support.TestSkipped), msg:
if not quiet:
print test, "skipped --", msg
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
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