hghave: change ssl check to just check ssl module
authorGregory Szorc <gregory.szorc@gmail.com>
Sat, 19 Mar 2016 13:51:00 -0700
changeset 28591 f29cab5c519c
parent 28590 b0b9f6b0a777
child 28592 cdbd9c0c0775
hghave: change ssl check to just check ssl module Previously, the "ssl" check effectively looked for PyOpenSSL or Python 2.7.9. After this patch, we simply look for just the "ssl" module. After d962e955da08, there have been no references to PyOpenSSL in the tree (the previous usage of PyOpenSSL was to implement ssl support on old, no longer supported Python versions that didn't have an ssl module (e.g. Python 2.4). So, the check for PyOpenSSL served no purpose. Pythons we support ship with the ssl module. Although it may not be available in all installations. So, we still need the check for whether the ssl module imports, hence the hghave check. The main side-effect of this change is that we now run test-https.t (the only test requiring the "ssl" hghave feature) on Python <2.7.9 when PyOpenSSL is not installed (which is probably most installations) and the ssl module is available. Before, we wouldn't run this test on these older Python versions. I confirmed that test-https.t passes with Python 2.6.9 and 2.7.8 on OS X 10.11.
tests/hghave.py
--- a/tests/hghave.py	Sat Mar 19 15:17:33 2016 -0700
+++ b/tests/hghave.py	Sat Mar 19 13:51:00 2016 -0700
@@ -341,15 +341,11 @@
     return not matchoutput('hg root 2>&1',
                            r'abort: no repository found', True)
 
-@check("ssl", ("(python >= 2.6 ssl module and python OpenSSL) "
-               "OR python >= 2.7.9 ssl"))
+@check("ssl", "ssl module available")
 def has_ssl():
     try:
         import ssl
-        if getattr(ssl, 'create_default_context', False):
-            return True
-        import OpenSSL
-        OpenSSL.SSL.Context
+        ssl.CERT_NONE
         return True
     except ImportError:
         return False