"""Unit tests for infrastructure module.""" from unittest.mock import patch from src.infra.resources import ResourceManager class TestResourceManager: """Tests for ResourceManager.""" def setup_method(self): """Reset singletons before each test.""" ResourceManager._io_pool = None ResourceManager._cpu_pool = None @patch('src.infra.resources.get_num_io_workers', return_value=4) def test_get_io_pool_singleton(self, mock_workers): """Test IO pool is created once and reused.""" pool1 = ResourceManager.get_io_pool() pool2 = ResourceManager.get_io_pool() assert pool1 is pool2 assert pool1._max_workers == 4 assert pool1._thread_name_prefix == 'io_' @patch('src.infra.resources.get_num_cpu_workers', return_value=2) def test_get_cpu_pool_singleton(self, mock_workers): """Test CPU pool is created once and reused.""" pool1 = ResourceManager.get_cpu_pool() pool2 = ResourceManager.get_cpu_pool() assert pool1 is pool2 assert pool1._max_workers == 2 assert pool1._thread_name_prefix == 'cpu_'