Exemplo n.º 1
0
    def test_ssl_wrap_socket_with_none_ssl_options(self):

        params = pika.ConnectionParameters(ssl_options=None)
        self.assertIsNone(params.ssl_options)

        with mock.patch('pika.connection.Connection.connect'):
            conn = base_connection.BaseConnection(parameters=params)

            with mock.patch('pika.adapters.base_connection'
                            '.ssl.wrap_socket') as wrap_socket_mock:
                sock_mock = mock.Mock()
                conn._wrap_socket(sock_mock)

                wrap_socket_mock.assert_called_once_with(
                    sock_mock, do_handshake_on_connect=conn.DO_HANDSHAKE)
Exemplo n.º 2
0
    def test_ssl_wrap_socket_with_default_ssl_options_obj(
            self, wrap_socket_mock):
        ssl_options = pika.SSLOptions(context=ssl.create_default_context())
        params = pika.ConnectionParameters(ssl_options=ssl_options)
        self.assertIs(params.ssl_options, ssl_options)

        with mock.patch('pika.connection.Connection.connect'):
            conn = base_connection.BaseConnection(parameters=params)

            sock_mock = mock.Mock()
            conn._wrap_socket(sock_mock)

            wrap_socket_mock.assert_called_once_with(
                sock_mock,
                server_side=False,
                do_handshake_on_connect=conn.DO_HANDSHAKE,
                suppress_ragged_eofs=True,
                server_hostname=None)
 def test_base_connection_timeout(self):
     with self.assertRaises(exceptions.AMQPConnectionError) as err_ctx:
         with mock.patch(
                 'pika.adapters.base_connection.BaseConnection'
                 '.add_timeout',
                 return_value='timer'):
             with mock.patch(
                     'pika.adapters.base_connection.BaseConnection'
                     '._create_tcp_connection_socket',
                     return_value=mock.Mock(
                         spec_set=socket.socket,
                         connect=mock.Mock(side_effect=mock_timeout))
             ) as create_sock_mock:
                 params = pika.ConnectionParameters(socket_timeout=2.0)
                 conn = base_connection.BaseConnection(params)
                 conn._on_connect_timer()
     create_sock_mock.return_value.settimeout.assert_called_with(2.0)
     self.assertIn('timeout', str(err_ctx.exception))
Exemplo n.º 4
0
    def test_ssl_wrap_socket_with_dict_ssl_options(self):

        ssl_options = dict(ssl='options', handshake=False)
        params = pika.ConnectionParameters(ssl_options=ssl_options)
        self.assertEqual(params.ssl_options, ssl_options)

        with mock.patch('pika.connection.Connection.connect'):
            conn = base_connection.BaseConnection(parameters=params)

            with mock.patch('pika.adapters.base_connection'
                            '.ssl.wrap_socket') as wrap_socket_mock:
                sock_mock = mock.Mock()
                conn._wrap_socket(sock_mock)

                wrap_socket_mock.assert_called_once_with(
                    sock_mock,
                    do_handshake_on_connect=conn.DO_HANDSHAKE,
                    ssl='options',
                    handshake=False)
Exemplo n.º 5
0
    def test_ssl_wrap_socket_with_ssl_options_obj(self, wrap_socket_mock,
                                                  set_ciphers_mock,
                                                  load_verify_mock,
                                                  load_certs_mock):
        ssl_options = pika.SSLOptions(certfile='/some/cert/file.crt',
                                      keyfile='/some/key/file.crt',
                                      key_password='******',
                                      cafile='/some/ca/file.crt',
                                      capath='/some/ca/path',
                                      cadata='/some/data/or/something',
                                      ciphers='ciphers',
                                      server_hostname='some.virtual.host',
                                      do_handshake_on_connect=False,
                                      suppress_ragged_eofs=False,
                                      server_side=True)
        params = pika.ConnectionParameters(ssl_options=ssl_options)
        #self.assertEqual(params.ssl_options, ssl_options)

        with mock.patch('pika.connection.Connection.connect'):
            conn = base_connection.BaseConnection(parameters=params)

            sock_mock = mock.Mock()
            conn._wrap_socket(sock_mock)

            load_certs_mock.assert_called_once_with(
                certfile='/some/cert/file.crt',
                keyfile='/some/key/file.crt',
                password='******')
            load_verify_mock.assert_called_once_with(
                cafile='/some/ca/file.crt',
                capath='/some/ca/path',
                cadata='/some/data/or/something')
            # the constructor of SSLContext calls set_ciphers as well
            set_ciphers_mock.assert_called_with('ciphers')
            wrap_socket_mock.assert_called_once_with(
                sock_mock,
                server_side=True,
                do_handshake_on_connect=False,
                suppress_ragged_eofs=False,
                server_hostname='some.virtual.host')
Exemplo n.º 6
0
    def test_ssl_wrap_socket_with_default_ssl_options_obj(
            self, wrap_socket_mock, set_ciphers_mock, load_verify_mock,
            load_certs_mock):
        ssl_options = pika.SSLOptions()
        params = pika.ConnectionParameters(ssl_options=ssl_options)
        #self.assertEqual(params.ssl_options, ssl_options)

        with mock.patch('pika.connection.Connection.connect'):
            conn = base_connection.BaseConnection(parameters=params)

            sock_mock = mock.Mock()
            conn._wrap_socket(sock_mock)

            load_certs_mock.assert_not_called()
            load_verify_mock.assert_not_called()
            # the __init__ of SSLContext calls set_ciphers,
            # hence the 'called once'
            set_ciphers_mock.assert_called_once()
            wrap_socket_mock.assert_called_once_with(
                sock_mock,
                server_side=False,
                do_handshake_on_connect=conn.DO_HANDSHAKE,
                suppress_ragged_eofs=True,
                server_hostname=None)
Exemplo n.º 7
0
 def test_connection_timeout(self, connect, settimeout):
     connect.side_effect = mock_timeout
     with self.assertRaises(exceptions.AMQPConnectionError):
         params = pika.ConnectionParameters(socket_timeout=2.0)
         base_connection.BaseConnection(params)
     settimeout.assert_called_with(2.0)
Exemplo n.º 8
0
 def setUp(self):
     with mock.patch('pika.connection.Connection.connect'):
         self.connection = base_connection.BaseConnection()
         self.connection._set_connection_state(
             base_connection.BaseConnection.CONNECTION_OPEN)