Skip to content
This repository was archived by the owner on Jan 13, 2021. It is now read-only.

Commit 1dbd67f

Browse files
committed
add more tests for full code coverage
1 parent c862c04 commit 1dbd67f

File tree

3 files changed

+67
-1
lines changed

3 files changed

+67
-1
lines changed

test/certs/nopassword.pem

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC6Xa4TY1JPp6Ta
3+
PdiBsCBIxCDOOUZWsAb+F6p0VDCocOv3Qx8NOHalFHjTAJIHdv0oyCwv99z+z3rc
4+
NZY+5DAaNQxw3mtaSoQVK+yVLQqfqkze/Qm5RoDFqubrFCGBSI4XQ3RW88JLIuZw
5+
b2do8MhIUwMo7xkVpsA/C+KBeKP1cchvoDwmO6MDLQGLozfARQpD1Y/kxAsfFRe+
6+
tsGFhyHuiwFed7IaWt4aUbBsFCw6O5zEg6tK+tJh2O9LEN8PyG1mojYQk3e1v5/6
7+
sSxoEuE2xTqFruZ+cuT+iSq0upF8o2bLfPZalY5NICKF3sKY0xCdnVabxUbxB+Z1
8+
5Nf5ZFCpAgMBAAECggEBAJWRm6R5wNSm0fpJSlqC9NYRedaoRthJu8LvUWC9NLPq
9+
tKYkG2ar2ySPsox9V7Vf/LtfM39n6NgjwhG7fBKLZkOSMaLgDr5PMYQgVWY/2Nfd
10+
gIYyBDzK5Yw+pccix+UPSuJGw7cJOPS+VL0F27NwEv1gihevFK24v2+Z5TZNkSDo
11+
yvI8Y0QNEZS36RGP1mlRGB1IAD61gOYPrnkkpYL+N1ZiGHUdqxLbMjxqmoFRJjhj
12+
qYfll0I6x5o4QydO7qXnSdpQugBWdRP2H/IHHB/QQAwro09t6B3C34jq4mTs6Oeu
13+
eTXk6ug6oPkqpCjoIk78W32Cd1SdCyeTkD7VTTLPN2UCgYEA3igGKKC7EffZqTYG
14+
6QXqj2hdl+YXmOy9gKxSnbGCO9uqefJTpqlmY7g9JfV/ijhJlMk4ZI9Hr/eCqCCp
15+
r6oIcGtwB1GqkHnVUgPaf6qc52r9ag+jXPJdWmL5Dc7GK3iosD4a7xXtY6obf5cX
16+
qzGczFbRlbBzmwI++/PFwaIBPv8CgYEA1sHZggxt1aOBfzJaYafdiC/NT/7DMAJ+
17+
qVCgoFU3IaexxAcaHpsPT3sMu/kEsA574V4PAojvR3qlzSMpBsCWNtgrOdA9WNyS
18+
G0RI/+gA0XCmDZaCGrzBlLGKidY48G+OozLRf3fBR8IbVeHfkocw65KQVKwfG4Ah
19+
Zc/bj0LwGFcCgYEA1xM4oyy473RcrY04s3Ce3afUtLJ2Nf88l849TZ4Ez56jNNx+
20+
T+PA1NoRmSZMC6ziz8Dfb7unU5z0SYEVxpN/CBd7phpSXv0UoQpKBz9OGF1kacIq
21+
Dlo2NsOLCuscwAlYhwgZW06HPO37IVNN/tdRTiLfVWQ3B+Lsx1ACLKyDOFECgYB1
22+
EsJPWhU6RONggwOwfwGOr3h+poSjlIiWJsUaArqGV1PaaIC9tIw5KPx9MLh0fcDc
23+
0BjgqeO/lMX0Obmw26ZICbouzy3SVpQz1xrwnvprMrzjZWxRxRrGw66hi64IrNgW
24+
caqxkYhFZTTfsb3etGJf2ctizV478LLEPPcVd0lKCwKBgG0q1+0FHJ8jsgi1pj+Y
25+
jP6n8LQ9fLlUVhjFHfNEA3gSanVHdsWmW+7pMUIbDSnDlifS5/afnZfPpW3lQXB4
26+
yoTmYYSt4mq8Jo5VItRWm5xsWqcbdqKVuuwzTi6m2F2Lvc4tp/E8GXGhSw3UM2qy
27+
CRHH9H+8ktCv/GnW5MiAF5Jz
28+
-----END PRIVATE KEY-----
29+
-----BEGIN CERTIFICATE-----
30+
MIIDezCCAmOgAwIBAgIJAJmioIcuQec4MA0GCSqGSIb3DQEBCwUAMFQxCzAJBgNV
31+
BAYTAlVTMRAwDgYDVQQIDAdOZXdZb3JrMRAwDgYDVQQHDAdOZXdZb3JrMSEwHwYD
32+
VQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMTYwMzIzMTE1MzUxWhcN
33+
MTYwNDIyMTE1MzUxWjBUMQswCQYDVQQGEwJVUzEQMA4GA1UECAwHTmV3WW9yazEQ
34+
MA4GA1UEBwwHTmV3WW9yazEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkg
35+
THRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAul2uE2NST6ek2j3Y
36+
gbAgSMQgzjlGVrAG/heqdFQwqHDr90MfDTh2pRR40wCSB3b9KMgsL/fc/s963DWW
37+
PuQwGjUMcN5rWkqEFSvslS0Kn6pM3v0JuUaAxarm6xQhgUiOF0N0VvPCSyLmcG9n
38+
aPDISFMDKO8ZFabAPwvigXij9XHIb6A8JjujAy0Bi6M3wEUKQ9WP5MQLHxUXvrbB
39+
hYch7osBXneyGlreGlGwbBQsOjucxIOrSvrSYdjvSxDfD8htZqI2EJN3tb+f+rEs
40+
aBLhNsU6ha7mfnLk/okqtLqRfKNmy3z2WpWOTSAihd7CmNMQnZ1Wm8VG8QfmdeTX
41+
+WRQqQIDAQABo1AwTjAdBgNVHQ4EFgQUtdlqFdvfUI7mkDH62Q6BE9DKyqYwHwYD
42+
VR0jBBgwFoAUtdlqFdvfUI7mkDH62Q6BE9DKyqYwDAYDVR0TBAUwAwEB/zANBgkq
43+
hkiG9w0BAQsFAAOCAQEAh/el7sxFudIVHcAti7DxkqJEiOs7bPwAwnaRiKfLZEYo
44+
NVGQ+GtMarCO/j/EO6STlkoFqI8XA2Jn9WYsoV8OD6lcU9DoJKlupIIRH+PVYhSb
45+
q6WTqbB0o12Se9EGJ/NmsXFn2KqSRah6TTcJSVNAvcF8qMilnPjbJjCxdoMVT34b
46+
EmdyZxIFmKMrth+zKTqDzs+FK+49JTnjomm7A3h9iErGzsiM3BZzZLGEcG52IYuC
47+
P/fcJs24014NqPqXl+JVnFk8sLBRZKYA9yYZ4C/XH/ZF/Y2pVhgwxZN8OtcaydR4
48+
pyGNdgG1ml9CpqZQfj4WMS+x2LmCWpCRH+pXcqg/kQ==
49+
-----END CERTIFICATE-----

test/test_SSLContext.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
TEST_CERTS_DIR = os.path.join(TEST_DIR, 'certs')
1616
CLIENT_CERT_FILE = os.path.join(TEST_CERTS_DIR, 'client.crt')
1717
CLIENT_KEY_FILE = os.path.join(TEST_CERTS_DIR, 'client.key')
18+
CLIENT_PEM_FILE = os.path.join(TEST_CERTS_DIR, 'nopassword.pem')
1819

1920

2021
class TestSSLContext(object):
@@ -61,4 +62,6 @@ def test_HTTPConnection_with_custom_context(self):
6162

6263
def test_client_certificates(self):
6364
context = hyper.tls.init_context(
64-
cert=(CLIENT_CERT_FILE, CLIENT_KEY_FILE), cert_password='abc123')
65+
cert=(CLIENT_CERT_FILE, CLIENT_KEY_FILE),
66+
cert_password=b'abc123')
67+
context = hyper.tls.init_context(cert=CLIENT_PEM_FILE)

test/test_hyper.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@
3030
import hyper
3131

3232

33+
TEST_DIR = os.path.abspath(os.path.dirname(__file__))
34+
TEST_CERTS_DIR = os.path.join(TEST_DIR, 'certs')
35+
CLIENT_PEM_FILE = os.path.join(TEST_CERTS_DIR, 'nopassword.pem')
36+
37+
3338
def decode_frame(frame_data):
3439
f, length = Frame.parse_frame_header(frame_data[:9])
3540
f.parse_body(memoryview(frame_data[9:9 + length]))
@@ -1329,6 +1334,15 @@ def test_adapter_reuses_connections(self):
13291334

13301335
assert conn1 is conn2
13311336

1337+
def test_adapter_accept_client_certificate(self):
1338+
a = HTTP20Adapter()
1339+
conn1 = a.get_connection('http2bin.org', 80, 'http',
1340+
cert=CLIENT_PEM_FILE)
1341+
conn2 = a.get_connection('http2bin.org', 80, 'http',
1342+
cert=CLIENT_PEM_FILE)
1343+
assert conn1 is conn2
1344+
1345+
13321346

13331347
class TestUtilities(object):
13341348
def test_combining_repeated_headers(self):

0 commit comments

Comments
 (0)