don't fail tests when www.python.org can't be validated by the system

This commit is contained in:
Benjamin Peterson 2014-11-25 15:16:55 -06:00
parent 5ef586f25a
commit 2615e9e293
2 changed files with 13 additions and 0 deletions

View File

@ -691,6 +691,18 @@ def _is_ipv6_enabled():
IPV6_ENABLED = _is_ipv6_enabled() IPV6_ENABLED = _is_ipv6_enabled()
def system_must_validate_cert(f):
"""Skip the test on TLS certificate validation failures."""
@functools.wraps(f)
def dec(*args, **kwargs):
try:
f(*args, **kwargs)
except IOError as e:
if e.reason == "CERTIFICATE_VERIFY_FAILED":
raise unittest.SkipTest("system does not contain "
"necessary certificates")
raise
return dec
# A constant likely larger than the underlying OS pipe buffer size, to # A constant likely larger than the underlying OS pipe buffer size, to
# make writes blocking. # make writes blocking.

View File

@ -794,6 +794,7 @@ class HTTPSTest(TestCase):
resp = h.getresponse() resp = h.getresponse()
self.assertIn('nginx', resp.getheader('server')) self.assertIn('nginx', resp.getheader('server'))
@support.system_must_validate_cert
def test_networked_trusted_by_default_cert(self): def test_networked_trusted_by_default_cert(self):
# Default settings: requires a valid cert from a trusted CA # Default settings: requires a valid cert from a trusted CA
support.requires('network') support.requires('network')