From d8431538a1f300de4c1f6d2ed1389af409da697b Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 24 Jun 2016 09:49:39 +0530 Subject: [PATCH] Possibly better fix for test_ssl() --- src/calibre/srv/tests/loop.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/calibre/srv/tests/loop.py b/src/calibre/srv/tests/loop.py index 86741dfabe..d11e7678f5 100644 --- a/src/calibre/srv/tests/loop.py +++ b/src/calibre/srv/tests/loop.py @@ -6,7 +6,7 @@ from __future__ import (unicode_literals, division, absolute_import, __license__ = 'GPL v3' __copyright__ = '2015, Kovid Goyal ' -import httplib, ssl, os, socket, time +import httplib, ssl, os, socket, time, errno from collections import namedtuple from unittest import skipIf from glob import glob @@ -179,8 +179,13 @@ class LoopTest(BaseTest): @skipIf(create_server_cert is None, 'certgen module not available') def test_ssl(self): 'Test serving over SSL' - s = socket.socket(socket.AF_INET if is_travis else socket.AF_INET6, socket.SOCK_STREAM, 0) - s.bind(('localhost', 0)) + try: + s = socket.socket(socket.AF_INET6, socket.SOCK_STREAM, 0) + s.bind(('localhost', 0)) + except socket.error as err: + if err.errno == errno.EADDRNOTAVAIL: + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0) + s.bind(('localhost', 0)) address = s.getsockname()[0] with TemporaryDirectory('srv-test-ssl') as tdir: cert_file, key_file, ca_file = map(lambda x:os.path.join(tdir, x), 'cka')