~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/https_server.py

(vila) Catch spurious and bogus ssl TypeError exceptions. (Vincent Ladeuil)

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
"""HTTPS test server, available when ssl python module is available"""
18
18
 
19
19
import ssl
 
20
import sys
20
21
 
21
22
from bzrlib.tests import (
22
23
    http_server,
51
52
            request.do_handshake()
52
53
        return serving
53
54
 
 
55
    def ignored_exceptions_during_shutdown(self, e):
 
56
        if (sys.version < (2, 7) and isinstance(e, TypeError)
 
57
            and e.args[0] == "'member_descriptor' object is not callable"):
 
58
            # Fixed in python-2.7 (and some Ubuntu 2.6) there is a bug where
 
59
            # the ssl socket fail to raise a socket.error when trying to read
 
60
            # from a closed socket. This is rarely observed in practice but
 
61
            # still make valid selftest runs fail if not caught.
 
62
            return True
 
63
        base = test_server.TestingTCPServerMixin
 
64
        return base.ignored_exceptions_during_shutdown(self, e)
 
65
 
54
66
 
55
67
class TestingHTTPSServer(TestingHTTPSServerMixin,
56
68
                         http_server.TestingHTTPServer):