Skip to content

Commit 5af49f3

Browse files
committed
Fixes following unit test run for py 2.7
1 parent 2d09141 commit 5af49f3

File tree

10 files changed

+164
-50
lines changed

10 files changed

+164
-50
lines changed

ndg/httpsclient/https.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
__revision__ = '$Id$'
1313
import logging
1414
import socket
15+
import sys
1516

1617
if sys.version_info[0] > 2:
1718
from http.client import HTTPS_PORT
@@ -87,7 +88,8 @@ def connect(self):
8788

8889
def close(self):
8990
"""Close socket and shut down SSL connection"""
90-
self.sock.close()
91+
if hasattr(self.sock, "close"):
92+
self.sock.close()
9193

9294

9395
class HTTPSContextHandler(AbstractHTTPHandler):
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDLjCCAhagAwIBAgIBATANBgkqhkiG9w0BAQUFADA3MREwDwYDVQQLDAhTZWN1
3+
cml0eTEUMBIGA1UEAwwLTkRHIFRlc3QgQ0ExDDAKBgNVBAoMA05ERzAeFw0xNTAx
4+
MjExNDMzMThaFw0yMDAxMjAxNDMzMThaMDcxETAPBgNVBAsMCFNlY3VyaXR5MRQw
5+
EgYDVQQDDAtOREcgVGVzdCBDQTEMMAoGA1UECgwDTkRHMIIBIjANBgkqhkiG9w0B
6+
AQEFAAOCAQ8AMIIBCgKCAQEArq4QKUTRq45nCDR/p+OlHIIN8+ugUbiCfteazbTG
7+
rX8vIQ9HxSuz/xvxTw+E0KgA4YSK2SJJP4QiCjlMKYS3Rt8o361GNtnRmeo5qyBu
8+
GMSv73XL1uuqumggUZyrhhksckR7gyNFnKVXzZjAQPepsT0xBjs5uEAEqXJzAf+r
9+
24AnT3MZRh7gsyEe3sZjd75kZVwcrWhrocyKlMCR77yEr+uP4pg+dEMhDMKKxlaF
10+
C5RPMotOpWm/7AToHrGia34WSmcxvuOwxOkI4xEW6mxWMaVTBCXUh6Wb/0m/x8Nv
11+
9VvS2UBC4sCp4MqlDpySxQpT1RgrhMTEmtUOh50l4eEhdwIDAQABo0UwQzASBgNV
12+
HRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUkEvQjGOP
13+
Oj5DZEvsm96AdiiFXWgwDQYJKoZIhvcNAQEFBQADggEBAGD0kQASmNzvtYL+JUGf
14+
gTPyJhADl9Ai9GvZJsY/wX0IRTxRl5y08Dqlg3qyGG3GzL918cr1sVCYnLepNQES
15+
T0MIz50DCKGryNSc74JHPDxpYaSV6whmNH5iwh8fy6tmJwF3FWbGXD2ddc+ofJqP
16+
WPPJtzqxuuJ6iXQIFqD9mEn3iXVcvFuSzpdpH9paORTKB0j4gya9zctB8LP0ZXIE
17+
//wREc+4msnmoTn+qkFAOPBg9WnvoipfyCXPgbTagxlofVjZ7gAgYIefqhXBTQdd
18+
5tnYdyQQBRcUXQS2bBX03q8ftcxOjc3SvXI4MvrqofuFPwu4GnrspnC0KQYlXwEI
19+
7ds=
20+
-----END CERTIFICATE-----
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDLjCCAhagAwIBAgIBATANBgkqhkiG9w0BAQUFADA3MREwDwYDVQQLDAhTZWN1
3+
cml0eTEUMBIGA1UEAwwLTkRHIFRlc3QgQ0ExDDAKBgNVBAoMA05ERzAeFw0xNTAx
4+
MjExNDMzMThaFw0yMDAxMjAxNDMzMThaMDcxETAPBgNVBAsMCFNlY3VyaXR5MRQw
5+
EgYDVQQDDAtOREcgVGVzdCBDQTEMMAoGA1UECgwDTkRHMIIBIjANBgkqhkiG9w0B
6+
AQEFAAOCAQ8AMIIBCgKCAQEArq4QKUTRq45nCDR/p+OlHIIN8+ugUbiCfteazbTG
7+
rX8vIQ9HxSuz/xvxTw+E0KgA4YSK2SJJP4QiCjlMKYS3Rt8o361GNtnRmeo5qyBu
8+
GMSv73XL1uuqumggUZyrhhksckR7gyNFnKVXzZjAQPepsT0xBjs5uEAEqXJzAf+r
9+
24AnT3MZRh7gsyEe3sZjd75kZVwcrWhrocyKlMCR77yEr+uP4pg+dEMhDMKKxlaF
10+
C5RPMotOpWm/7AToHrGia34WSmcxvuOwxOkI4xEW6mxWMaVTBCXUh6Wb/0m/x8Nv
11+
9VvS2UBC4sCp4MqlDpySxQpT1RgrhMTEmtUOh50l4eEhdwIDAQABo0UwQzASBgNV
12+
HRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUkEvQjGOP
13+
Oj5DZEvsm96AdiiFXWgwDQYJKoZIhvcNAQEFBQADggEBAGD0kQASmNzvtYL+JUGf
14+
gTPyJhADl9Ai9GvZJsY/wX0IRTxRl5y08Dqlg3qyGG3GzL918cr1sVCYnLepNQES
15+
T0MIz50DCKGryNSc74JHPDxpYaSV6whmNH5iwh8fy6tmJwF3FWbGXD2ddc+ofJqP
16+
WPPJtzqxuuJ6iXQIFqD9mEn3iXVcvFuSzpdpH9paORTKB0j4gya9zctB8LP0ZXIE
17+
//wREc+4msnmoTn+qkFAOPBg9WnvoipfyCXPgbTagxlofVjZ7gAgYIefqhXBTQdd
18+
5tnYdyQQBRcUXQS2bBX03q8ftcxOjc3SvXI4MvrqofuFPwu4GnrspnC0KQYlXwEI
19+
7ds=
20+
-----END CERTIFICATE-----

ndg/httpsclient/test/pki/ca/d573507a.0

Lines changed: 0 additions & 14 deletions
This file was deleted.
882 Bytes
Binary file not shown.
Lines changed: 80 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,82 @@
1+
Certificate:
2+
Data:
3+
Version: 3 (0x2)
4+
Serial Number: 1 (0x1)
5+
Signature Algorithm: sha1WithRSAEncryption
6+
Issuer: OU=Security, CN=NDG Test CA, O=NDG
7+
Validity
8+
Not Before: Jan 21 14:45:01 2015 GMT
9+
Not After : Jan 20 14:45:01 2018 GMT
10+
Subject: O=NDG, OU=Security, CN=localhost
11+
Subject Public Key Info:
12+
Public Key Algorithm: rsaEncryption
13+
RSA Public Key: (2048 bit)
14+
Modulus (2048 bit):
15+
00:e3:29:45:fc:56:2d:a2:21:b6:49:c6:6a:ef:b3:
16+
ed:d3:32:47:77:d9:85:ef:e5:6a:db:70:8b:5d:41:
17+
4d:b5:76:f5:96:42:5a:f7:82:a5:bb:b3:e1:f9:ac:
18+
c6:b7:71:61:f4:4d:dd:28:f6:b1:ef:65:dc:5a:8c:
19+
47:b1:17:38:e1:8a:5f:40:b0:bb:a0:87:61:a7:72:
20+
f8:c1:a1:5f:3b:f7:94:b5:cb:c3:50:84:ef:a8:13:
21+
d4:92:ff:af:3a:d1:31:42:90:4b:58:4c:84:47:a6:
22+
3a:a3:3d:c1:9a:43:3c:10:f6:8a:b5:97:11:b7:74:
23+
ab:32:92:be:9a:fc:ef:5e:45:78:30:61:67:10:63:
24+
09:ef:61:b7:1c:47:cc:69:c9:e7:27:8f:4d:97:33:
25+
59:33:b8:47:89:86:4c:cd:a4:38:7c:d0:60:ee:52:
26+
c8:e1:2a:f1:3b:9b:e9:7c:d5:af:88:33:91:9c:10:
27+
63:89:01:03:fb:26:5e:3f:61:c3:b4:f0:fb:1f:ad:
28+
e8:d2:49:8e:2f:16:81:bb:9c:d6:a5:48:91:58:7d:
29+
ac:ac:2c:02:8a:f2:f4:22:80:1f:8c:32:5b:b5:77:
30+
d0:36:e9:27:9a:9f:31:67:d5:4e:32:8d:cf:ce:73:
31+
ef:88:86:e9:3c:53:e6:09:55:02:2b:86:7d:91:8d:
32+
fb:53
33+
Exponent: 65537 (0x10001)
34+
X509v3 extensions:
35+
X509v3 Basic Constraints:
36+
CA:FALSE
37+
Netscape Comment:
38+
OpenSSL Generated Certificate
39+
X509v3 Subject Key Identifier:
40+
A3:77:23:B5:1C:98:85:C8:6D:31:40:1C:2F:20:57:CD:C9:36:74:1B
41+
X509v3 Authority Key Identifier:
42+
keyid:90:4B:D0:8C:63:8F:3A:3E:43:64:4B:EC:9B:DE:80:76:28:85:5D:68
43+
44+
X509v3 Subject Alternative Name:
45+
DNS:localhost
46+
Signature Algorithm: sha1WithRSAEncryption
47+
33:b4:87:0e:2c:71:88:6d:ab:cc:14:c8:3f:1e:8d:e5:ed:26:
48+
6b:b8:76:93:29:b1:0b:c5:e7:41:6f:14:62:8f:e1:81:bb:02:
49+
13:5c:b2:34:b7:94:f2:7d:1e:fe:e7:89:0b:2e:56:30:58:eb:
50+
90:d4:05:5b:18:d9:c5:68:61:c0:f6:f7:1a:0f:14:d8:89:8e:
51+
ee:ec:59:b8:48:96:58:33:2e:98:95:56:c3:02:e9:93:cd:3f:
52+
4c:0d:b5:b5:b6:6e:6f:95:5f:65:eb:1a:ce:56:20:e2:72:d4:
53+
f7:58:5f:c0:7b:49:5f:ac:6b:01:7b:c8:f0:13:19:03:dd:4e:
54+
05:55:f9:31:52:ea:45:eb:54:b9:4b:a2:3f:22:c7:11:47:8a:
55+
94:b4:e9:9e:c0:09:96:72:66:ba:01:d3:f3:00:6e:24:ca:a9:
56+
6d:8e:7f:0b:a0:fd:f9:c9:4f:3a:36:07:c7:4a:c7:c7:1f:c7:
57+
e0:2d:c3:21:d0:44:68:81:38:af:ce:cb:38:be:db:02:3d:ba:
58+
62:00:43:94:22:c8:d7:43:cd:db:73:23:9d:28:aa:d6:4c:08:
59+
45:8f:b5:1d:04:c7:2b:8e:22:12:e6:af:cd:9c:13:db:c9:76:
60+
f4:0c:10:25:fa:5c:46:77:7d:e5:ee:16:b4:f1:24:94:22:06:
61+
85:40:0c:5f
162
-----BEGIN CERTIFICATE-----
2-
MIICFjCCAX+gAwIBAgIBCjANBgkqhkiG9w0BAQQFADAzMQwwCgYDVQQKEwNOREcx
3-
ETAPBgNVBAsTCFNlY3VyaXR5MRAwDgYDVQQDEwdUZXN0IENBMB4XDTEyMDIwODE2
4-
MTE1M1oXDTE3MDIwNjE2MTE1M1owNTERMA8GA1UECxMIU2VjdXJpdHkxEjAQBgNV
5-
BAMTCWxvY2FsaG9zdDEMMAoGA1UEChMDTkRHMIGfMA0GCSqGSIb3DQEBAQUAA4GN
6-
ADCBiQKBgQCdhZgzD0xusZqzdphETJPgb4QK/sdDpF8EOT/20bAuyRgGt7papJmc
7-
6UtdgS5b9bGh6sRXx+vSKiTqq1ZFLOjnn3OQKhdrK2VU8XiD5rjuwTuNzser0uba
8-
lTOW5/2yVab+uZ/vw4yxR64+KdyBuVopXV9STuh12Q0JSrXzdH82iQIDAQABozgw
9-
NjAMBgNVHRMBAf8EAjAAMCYGA1UdEQQfMB2CCWxvY2FsaG9zdIIQbG9jYWxob3N0
10-
LmRvbWFpbjANBgkqhkiG9w0BAQQFAAOBgQBAAQCTkLfgYAjvm63KRXcE8djkYIVQ
11-
LleHNrCad/v3zNFK0PPCjIeBSWlI/1bPhJDCpfwpvJLk86DrB97Q3IafU2ml7DkC
12-
93bi3iaDy4jI1uskvlM516iaBQx1DCIa4gesluBAnZFvby8HX9y/A7tn5Ew2vdQJ
13-
upkcCUswsU4MSA==
63+
MIIDejCCAmKgAwIBAgIBATANBgkqhkiG9w0BAQUFADA3MREwDwYDVQQLDAhTZWN1
64+
cml0eTEUMBIGA1UEAwwLTkRHIFRlc3QgQ0ExDDAKBgNVBAoMA05ERzAeFw0xNTAx
65+
MjExNDQ1MDFaFw0xODAxMjAxNDQ1MDFaMDUxDDAKBgNVBAoTA05ERzERMA8GA1UE
66+
CxMIU2VjdXJpdHkxEjAQBgNVBAMTCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEB
67+
BQADggEPADCCAQoCggEBAOMpRfxWLaIhtknGau+z7dMyR3fZhe/lattwi11BTbV2
68+
9ZZCWveCpbuz4fmsxrdxYfRN3Sj2se9l3FqMR7EXOOGKX0Cwu6CHYady+MGhXzv3
69+
lLXLw1CE76gT1JL/rzrRMUKQS1hMhEemOqM9wZpDPBD2irWXEbd0qzKSvpr8715F
70+
eDBhZxBjCe9htxxHzGnJ5yePTZczWTO4R4mGTM2kOHzQYO5SyOEq8Tub6XzVr4gz
71+
kZwQY4kBA/smXj9hw7Tw+x+t6NJJji8Wgbuc1qVIkVh9rKwsAory9CKAH4wyW7V3
72+
0DbpJ5qfMWfVTjKNz85z74iG6TxT5glVAiuGfZGN+1MCAwEAAaOBkjCBjzAJBgNV
73+
HRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZp
74+
Y2F0ZTAdBgNVHQ4EFgQUo3cjtRyYhchtMUAcLyBXzck2dBswHwYDVR0jBBgwFoAU
75+
kEvQjGOPOj5DZEvsm96AdiiFXWgwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqG
76+
SIb3DQEBBQUAA4IBAQAztIcOLHGIbavMFMg/Ho3l7SZruHaTKbELxedBbxRij+GB
77+
uwITXLI0t5TyfR7+54kLLlYwWOuQ1AVbGNnFaGHA9vcaDxTYiY7u7Fm4SJZYMy6Y
78+
lVbDAumTzT9MDbW1tm5vlV9l6xrOViDictT3WF/Ae0lfrGsBe8jwExkD3U4FVfkx
79+
UupF61S5S6I/IscRR4qUtOmewAmWcma6AdPzAG4kyqltjn8LoP35yU86NgfHSsfH
80+
H8fgLcMh0ERogTivzss4vtsCPbpiAEOUIsjXQ83bcyOdKKrWTAhFj7UdBMcrjiIS
81+
5q/NnBPbyXb0DBAl+lxGd33l7ha08SSUIgaFQAxf
1482
-----END CERTIFICATE-----
Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,27 @@
11
-----BEGIN RSA PRIVATE KEY-----
2-
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
1527
-----END RSA PRIVATE KEY-----

ndg/httpsclient/test/test_https.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def test02_open_fails(self):
3838
self.assertRaises(socket.error, conn.connect)
3939

4040
def test03_ssl_verification_of_peer_fails(self):
41-
ctx = SSL.Context(SSL.SSLv3_METHOD)
41+
ctx = SSL.Context(SSL.TLSv1_METHOD)
4242

4343
def verify_callback(conn, x509, errnum, errdepth, preverify_ok):
4444
log.debug('SSL peer certificate verification failed for %r',
@@ -57,7 +57,7 @@ def verify_callback(conn, x509, errnum, errdepth, preverify_ok):
5757
self.assertRaises(SSL.Error, conn.request, 'GET', '/')
5858

5959
def test03_ssl_verification_of_peer_succeeds(self):
60-
ctx = SSL.Context(SSL.SSLv3_METHOD)
60+
ctx = SSL.Context(SSL.TLSv1_METHOD)
6161

6262
verify_callback = lambda conn, x509, errnum, errdepth, preverify_ok: \
6363
preverify_ok
@@ -76,10 +76,11 @@ def test03_ssl_verification_of_peer_succeeds(self):
7676
print('Response = %s' % resp.read())
7777

7878
def test04_ssl_verification_with_subj_alt_name(self):
79-
ctx = SSL.Context(SSL.SSLv3_METHOD)
79+
ctx = SSL.Context(SSL.TLSv1_METHOD)
80+
81+
verification = ServerSSLCertVerification(hostname='localhost')
82+
verify_callback = verification.get_verify_server_cert_func()
8083

81-
verify_callback = ServerSSLCertVerification(hostname='localhost')
82-
8384
ctx.set_verify(SSL.VERIFY_PEER, verify_callback)
8485
ctx.set_verify_depth(9)
8586

@@ -94,13 +95,15 @@ def test04_ssl_verification_with_subj_alt_name(self):
9495
print('Response = %s' % resp.read())
9596

9697
def test04_ssl_verification_with_subj_common_name(self):
97-
ctx = SSL.Context(SSL.SSLv3_METHOD)
98+
ctx = SSL.Context(SSL.TLSv1_METHOD)
9899

99100
# Explicitly set verification of peer hostname using peer certificate
100101
# subject common name
101-
verify_callback = ServerSSLCertVerification(hostname='localhost',
102-
subj_alt_name_match=False)
102+
verification = ServerSSLCertVerification(hostname='localhost',
103+
subj_alt_name_match=False)
103104

105+
verify_callback = verification.get_verify_server_cert_func()
106+
104107
ctx.set_verify(SSL.VERIFY_PEER, verify_callback)
105108
ctx.set_verify_depth(9)
106109

ndg/httpsclient/test/test_urllib2.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
__license__ = "BSD - see LICENSE file in top-level directory"
1010
__contact__ = "[email protected]"
1111
__revision__ = '$Id$'
12+
import sys
13+
1214
if sys.version_info[0] > 2:
1315
from urllib.error import URLError as URLError_
1416
else:
@@ -40,14 +42,14 @@ def test03_open_fails_unknown_loc(self):
4042

4143
def test04_open_peer_cert_verification_fails(self):
4244
# Explicitly set empty CA directory to make verification fail
43-
ctx = SSL.Context(SSL.SSLv3_METHOD)
45+
ctx = SSL.Context(SSL.TLSv1_METHOD)
4446
verify_callback = lambda conn, x509, errnum, errdepth, preverify_ok: \
4547
preverify_ok
4648

4749
ctx.set_verify(SSL.VERIFY_PEER, verify_callback)
4850
ctx.load_verify_locations(None, './')
4951
opener = build_opener(ssl_context=ctx)
50-
self.assertRaises(excClass, callableObj)(SSL.Error, opener.open, Constants.TEST_URI)
52+
self.assertRaises(SSL.Error, opener.open, Constants.TEST_URI)
5153

5254

5355
if __name__ == "__main__":

ndg/httpsclient/urllib2_build_opener.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
if sys.version_info[0] > 2:
1515
class_type_ = type
1616
else:
17+
import types
1718
class_type_ = types.ClassType
1819

1920
from urllib2 import (ProxyHandler, UnknownHandler, HTTPDefaultErrorHandler,

0 commit comments

Comments
 (0)