Spaces:
Running
Running
| """ | |
| Test script for configuration system. | |
| """ | |
| import os | |
| from config import get_settings, validate_configuration | |
| def test_configuration(): | |
| """Test configuration loading and validation.""" | |
| print("=" * 60) | |
| print("Testing Configuration System") | |
| print("=" * 60) | |
| # Test loading default configuration (without API key validation for testing) | |
| print("\n1. Loading default configuration...") | |
| try: | |
| settings = get_settings(validate_api_keys=False) | |
| print(f"✅ Configuration loaded successfully!") | |
| print(f" Environment: {settings.app.environment}") | |
| print(f" Debug mode: {settings.app.debug}") | |
| print(f" Local directory: {settings.aws.local_dir}") | |
| except Exception as e: | |
| print(f"❌ Failed to load configuration: {str(e)}") | |
| return False | |
| # Test validation | |
| print("\n2. Validating configuration...") | |
| is_valid = validate_configuration(settings, print_report=True) | |
| if not is_valid: | |
| print("\n❌ Configuration validation failed!") | |
| return False | |
| # Test environment-specific loading | |
| print("\n3. Testing environment-specific configuration...") | |
| # Test development environment | |
| print("\n a) Development environment:") | |
| try: | |
| dev_settings = get_settings(environment='development', reload=True, validate_api_keys=False) | |
| print(f" ✅ Loaded development config") | |
| print(f" Debug mode: {dev_settings.app.debug}") | |
| print(f" Environment: {dev_settings.app.environment}") | |
| except Exception as e: | |
| print(f" ❌ Failed: {str(e)}") | |
| # Test production environment | |
| print("\n b) Production environment:") | |
| try: | |
| prod_settings = get_settings(environment='production', reload=True, validate_api_keys=False) | |
| print(f" ✅ Loaded production config") | |
| print(f" Debug mode: {prod_settings.app.debug}") | |
| print(f" Environment: {prod_settings.app.environment}") | |
| except Exception as e: | |
| print(f" ❌ Failed: {str(e)}") | |
| # Test configuration values | |
| print("\n4. Testing configuration values...") | |
| settings = get_settings(reload=True, validate_api_keys=False) | |
| print(f" LlamaIndex settings:") | |
| print(f" Context window: {settings.llama_index.context_window}") | |
| print(f" Chunk size: {settings.llama_index.chunk_size}") | |
| print(f" Similarity top k: {settings.llama_index.similarity_top_k}") | |
| print(f"\n Session settings:") | |
| print(f" Timeout: {settings.session.timeout_minutes} minutes") | |
| print(f" Max sessions: {settings.session.max_sessions}") | |
| print(f" Storage type: {settings.session.storage_type}") | |
| print(f"\n Model providers: {', '.join(settings.models.providers)}") | |
| # Test model configurations | |
| print(f"\n Generation models:") | |
| for provider in settings.models.providers: | |
| models = getattr(settings.models.generation, provider, []) | |
| if models: | |
| default_model = next((m for m in models if m.default), models[0]) | |
| print(f" {provider}: {default_model.display_name}") | |
| print(f"\n Analysis models:") | |
| for provider in settings.models.providers: | |
| models = getattr(settings.models.analysis, provider, []) | |
| if models: | |
| default_model = next((m for m in models if m.default), models[0]) | |
| print(f" {provider}: {default_model.display_name}") | |
| print("\n" + "=" * 60) | |
| print("✅ All configuration tests passed!") | |
| print("=" * 60) | |
| return True | |
| if __name__ == "__main__": | |
| # Set test environment variables if not present | |
| if not os.getenv('OPENAI_API_KEY'): | |
| print("⚠️ Warning: OPENAI_API_KEY not set. Some validations may fail.") | |
| success = test_configuration() | |
| exit(0 if success else 1) | |