"""Unit tests for OWS request wrapper functions.""" from unittest.mock import Mock, patch from file_upload_initialize.connectors import requests class TestRequestWrappers: """Tests for OWS request wrapper functions.""" @patch('file_upload_initialize.connectors.requests.ows_client') def test_put_request(self, mock_ows_client): """Test PUT request wrapper.""" service = 'test-service' path = '/test/endpoint/123' body = {'updated': 'data'} mock_response = Mock() mock_ows_client.put.return_value = mock_response result = requests.put(service, path, body) assert result == mock_response mock_ows_client.put.assert_called_once_with( path=path, service_name=service, json=body ) @patch('file_upload_initialize.connectors.requests.ows_client') def test_put_request_with_options(self, mock_ows_client): """Test PUT request with additional options.""" service = 'test-service' path = '/test/endpoint/123' body = {'updated': 'data'} mock_response = Mock() mock_ows_client.put.return_value = mock_response extra_options = {'headers': {'If-Match': 'etag'}} result = requests.put(service, path, body, **extra_options) assert result == mock_response mock_ows_client.put.assert_called_once_with( path=path, service_name=service, json=body, **extra_options ) class TestModuleInitialization: """Tests for module-level initialization.""" @patch('file_upload_initialize.connectors.requests.ENVIRONMENT', 'dev') @patch('file_upload_initialize.connectors.requests.LambdaSecretsManager') @patch('file_upload_initialize.connectors.requests.M2MTokenManager') @patch('file_upload_initialize.connectors.requests.OwsClient') def test_ows_client_initialization_dev( self, mock_ows_client_cls, mock_m2m_manager_cls, mock_secrets_manager_cls ): """Test OWS client initialization in dev environment.""" # Note: This test verifies the module initialization logic # In dev environment, m2m_token_manager should be None pass @patch('file_upload_initialize.connectors.requests.ENVIRONMENT', 'prod') def test_module_constants(self): """Test module-level constants are properly set.""" from file_upload_initialize.connectors import requests as req_module assert hasattr(req_module, 'secrets_manager') assert hasattr(req_module, 'm2m_token_manager') assert hasattr(req_module, 'ows_client')