#!/usr/bin/env python3 """Test script for dependency injection implementation.""" import sys import os # Add src to path sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'src')) try: from infrastructure.config.dependency_container import DependencyContainer, get_container from infrastructure.config.app_config import AppConfig from infrastructure.tts.provider_factory import TTSProviderFactory from infrastructure.stt.provider_factory import STTProviderFactory from infrastructure.translation.provider_factory import TranslationProviderFactory print("๐Ÿงช Testing Dependency Injection Implementation...") print() # Test basic container functionality container = DependencyContainer() print('โœ… DependencyContainer created successfully') # Test configuration resolution config = container.resolve(AppConfig) print(f'โœ… AppConfig resolved: {type(config).__name__}') # Test factory resolution tts_factory = container.resolve(TTSProviderFactory) stt_factory = container.resolve(STTProviderFactory) translation_factory = container.resolve(TranslationProviderFactory) print(f'โœ… TTSProviderFactory resolved: {type(tts_factory).__name__}') print(f'โœ… STTProviderFactory resolved: {type(stt_factory).__name__}') print(f'โœ… TranslationProviderFactory resolved: {type(translation_factory).__name__}') # Test global container global_container = get_container() print(f'โœ… Global container retrieved: {type(global_container).__name__}') # Test service registration info services = container.get_registered_services() print(f'โœ… Registered services: {len(services)} services') for service_name, lifetime in services.items(): print(f' - {service_name}: {lifetime}') # Test cleanup container.cleanup() print('โœ… Container cleanup completed') print() print('๐ŸŽ‰ All dependency injection tests passed!') except Exception as e: print(f'โŒ Test failed: {e}') import traceback traceback.print_exc() sys.exit(1)