Parcourir la source

[2595] Additional tests for ssl socket wrapping code

Jelte Jansen il y a 12 ans
Parent
commit
e273dedf8a
1 fichiers modifiés avec 16 ajouts et 3 suppressions
  1. 16 3
      src/bin/cmdctl/tests/cmdctl_test.py

+ 16 - 3
src/bin/cmdctl/tests/cmdctl_test.py

@@ -513,16 +513,29 @@ class TestSecureHTTPServer(unittest.TestCase):
     def test_wrap_sock_in_ssl_context(self):
         sock = socket.socket()
 
+        # Bad files should result in a socket.error raised by our own
+        # code in the basic file checks
         self.assertRaises(socket.error,
                           self.server._wrap_socket_in_ssl_context,
                           sock,
                           'no_such_file', 'no_such_file')
 
-        sock1 = socket.socket()
-        self.server._wrap_socket_in_ssl_context(sock1,
-                          BUILD_FILE_PATH + 'cmdctl-keyfile.pem',
+        # Using a non-certificate file would cause an SSLError, which
+        # is caught by our code which then raises a basic socket.error
+        self.assertRaises(socket.error,
+                          self.server._wrap_socket_in_ssl_context,
+                          sock,
+                          BUILD_FILE_PATH + 'cmdctl.py',
                           BUILD_FILE_PATH + 'cmdctl-certfile.pem')
 
+        # Should succeed
+        sock1 = socket.socket()
+        ssl_sock = self.server._wrap_socket_in_ssl_context(sock1,
+                                   BUILD_FILE_PATH + 'cmdctl-keyfile.pem',
+                                   BUILD_FILE_PATH + 'cmdctl-certfile.pem')
+        self.assertIsInstance(ssl_sock, ssl.SSLSocket)
+
+
 class TestFuncNotInClass(unittest.TestCase):
     def test_check_port(self):
         self.assertRaises(OptionValueError, check_port, None, 'port', -1, None)