Tests: fixed test_tls_reconfigure.

Previously, order of applying TLS configuration and sending partial request to
the application was uncertain.  These changes make sure that client-application
connection was established before reconfiguration.  Additionally, added test
to check that non-TLS connection works correctly after reconfiguration.
This commit is contained in:
Andrey Zelenkov
2018-12-25 16:35:35 +03:00
parent f5b7fee128
commit 4ccf0c8a17

View File

@@ -306,23 +306,25 @@ basicConstraints = critical,CA:TRUE""" % {
self.assertEqual(self.get_ssl()['status'], 200,
'certificate chain intermediate server')
@unittest.expectedFailure
def test_tls_reconfigure(self):
self.load('empty')
self.certificate()
(resp, sock) = self.http(b"""GET / HTTP/1.1
""", start=True, raw=True, no_recv=True)
(resp, sock) = self.get(headers={
'Connection': 'keep-alive',
'Host': 'localhost'
}, start=True)
self.assertEqual(resp['status'], 200, 'initial status')
self.add_tls()
resp = self.http(b"""Host: localhost
Connection: close
""", sock=sock, raw=True)
self.assertEqual(resp['status'], 200, 'update status')
self.assertEqual(self.get_ssl()['status'], 200, 'update tls status')
self.assertEqual(self.get(sock=sock)['status'], 200,
'reconfigure status')
self.assertEqual(self.get_ssl()['status'], 200,
'reconfigure tls status')
def test_tls_keepalive(self):
self.load('mirror')