mirror of
https://github.com/python/cpython.git
synced 2025-08-03 00:23:06 +00:00
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.
This commit is contained in:
parent
13b291021f
commit
9a0db07c2f
2 changed files with 18 additions and 2 deletions
|
@ -196,6 +196,7 @@ def main(tests=None, testdir=None, verbose=0, quiet=0, generate=0,
|
|||
good = []
|
||||
bad = []
|
||||
skipped = []
|
||||
resource_denieds = []
|
||||
|
||||
if findleaks:
|
||||
try:
|
||||
|
@ -263,6 +264,8 @@ def main(tests=None, testdir=None, verbose=0, quiet=0, generate=0,
|
|||
bad.append(test)
|
||||
else:
|
||||
skipped.append(test)
|
||||
if ok == -2:
|
||||
resource_denieds.append(test)
|
||||
if findleaks:
|
||||
gc.collect()
|
||||
if gc.garbage:
|
||||
|
@ -299,7 +302,7 @@ def main(tests=None, testdir=None, verbose=0, quiet=0, generate=0,
|
|||
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 + ":"
|
||||
|
@ -395,6 +398,11 @@ def runtest(test, generate, verbose, quiet, testdir = None):
|
|||
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
|
||||
|
|
|
@ -21,6 +21,14 @@ class TestSkipped(Error):
|
|||
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 @@ def requires(resource, msg=None):
|
|||
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
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue