teachingAssistant / test_dependency_injection.py
Michael Hu
Create provider factories with dependency injection
48ba7e8
raw
history blame
2.08 kB
#!/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)