Skip to content

OpenSSL.test.test_ssl.ContextTests.test_set_default_verify_paths() error with absent network connection #68

@Arfrever

Description

@Arfrever

OpenSSL.test.test_ssl.ContextTests.test_set_default_verify_paths() triggers error when network connection is absent. It is the only test in pyOpenSSL test suite with this problem.

======================================================================
ERROR: test_set_default_verify_paths (OpenSSL.test.test_ssl.ContextTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/pyopenssl/OpenSSL/test/test_ssl.py", line 930, in test_set_default_verify_paths
    client.connect(('verisign.com', 443))
socket.gaierror: [Errno -3] Temporary failure in name resolution

======================================================================

Possible fix:

--- OpenSSL/test/test_ssl.py
+++ OpenSSL/test/test_ssl.py
@@ -8,7 +8,7 @@
 from gc import collect, get_referrers
 from errno import ECONNREFUSED, EINPROGRESS, EWOULDBLOCK, EPIPE, ESHUTDOWN
 from sys import platform, version_info
-from socket import SHUT_RDWR, error, socket
+from socket import SHUT_RDWR, error, gaierror, socket
 from os import makedirs
 from os.path import join
 from unittest import main
@@ -927,7 +927,11 @@
                 lambda conn, cert, errno, depth, preverify_ok: preverify_ok)

             client = socket()
-            client.connect(('verisign.com', 443))
+            try:
+                client.connect(('verisign.com', 443))
+            except gaierror:
+                # Absent network connection or verisign.com inaccessible.
+                return
             clientSSL = Connection(context, client)
             clientSSL.set_connect_state()                                                                                                                   
             clientSSL.do_handshake()

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions