"""Tests for the Opensearch connector.""" from unittest.mock import patch from opensearchpy import AWSV4SignerAuth from opensearchpy import RequestsHttpConnection @patch('src.connectors.opensearch.AWSV4SignerAuth', autospec=True) @patch('src.connectors.opensearch.OpenSearch', autospec=True) @patch('src.connectors.opensearch.config', autospec=True) def test_opensearch_get_client(mock_config, mocked_os_client, mock_auth, monkeypatch): """Test opensearch client is created using expected configuration.""" host = 'test-os-hostname' os_client = mocked_os_client.return_value mock_config.OPENSEARCH_HOST = host mock_config.OPENSEARCH_PORT = 443 mock_config.OPENSEARCH_DEFAULT_TIMEOUT = 120 from src.connectors import opensearch os_client_instance = opensearch.get_client() assert mocked_os_client.call_args call_kwargs = mocked_os_client.call_args[1] assert len(call_kwargs) == 6 assert call_kwargs['hosts'][0]['host'] == host assert call_kwargs['hosts'][0]['port'] == 443 assert call_kwargs['use_ssl'] assert call_kwargs['hosts'][0]['timeout'] == 120 assert (call_kwargs['connection_class'] is RequestsHttpConnection) assert isinstance(call_kwargs['http_auth'], AWSV4SignerAuth) assert os_client_instance is os_client