#!/usr/bin/env python3 """ Test script for HF Spaces configuration ======================================= This script tests the HF Spaces configuration module to ensure it's working correctly. Run this script to verify that the configuration is properly set up. """ import os import sys from pathlib import Path def test_hf_spaces_config(): """Test the HF Spaces configuration""" print("๐Ÿงช Testing HF Spaces Configuration") print("=" * 50) try: # Import the configuration from hf_spaces_config import get_hf_config, is_hf_spaces print("โœ… Successfully imported HF Spaces configuration") # Test environment detection print(f"\n๐ŸŒ Environment Detection:") print(f" Is HF Spaces: {is_hf_spaces()}") # Get configuration config = get_hf_config() print(f" Configuration loaded: {type(config).__name__}") # Test cache directories print(f"\n๐Ÿ“ Cache Directories:") for name, path in config.cache_dirs.items(): exists = os.path.exists(path) print(f" {name}: {path} {'โœ…' if exists else 'โŒ'}") # Test environment variables print(f"\n๐Ÿ”ง Environment Variables:") env_vars = config.env_vars for key, value in env_vars.items(): print(f" {key}: {value}") # Test model configuration print(f"\n๐Ÿค– Model Configuration:") model_config = config.get_model_config() for key, value in model_config.items(): print(f" {key}: {value}") # Test guard rail configuration print(f"\n๐Ÿ›ก๏ธ Guard Rail Configuration:") guard_config = config.get_guard_rail_config() for key, value in guard_config.items(): print(f" {key}: {value}") # Test resource limits print(f"\n๐Ÿ“Š Resource Limits:") resource_limits = config.get_resource_limits() for key, value in resource_limits.items(): print(f" {key}: {value}") print(f"\nโœ… All tests passed!") return True except ImportError as e: print(f"โŒ Import error: {e}") return False except Exception as e: print(f"โŒ Configuration error: {e}") return False def test_cache_directories(): """Test cache directory creation""" print(f"\n๐Ÿ”ง Testing Cache Directory Creation") print("=" * 50) try: from hf_spaces_config import get_hf_config config = get_hf_config() # Test directory creation for name, path in config.cache_dirs.items(): try: Path(path).mkdir(parents=True, exist_ok=True) print(f"โœ… Created: {name} -> {path}") except Exception as e: print(f"โŒ Failed to create {name}: {e}") return True except Exception as e: print(f"โŒ Cache directory test failed: {e}") return False def test_environment_variables(): """Test environment variable setup""" print(f"\n๐Ÿ”ง Testing Environment Variables") print("=" * 50) try: from hf_spaces_config import get_hf_config config = get_hf_config() # Check if environment variables are set for key, expected_value in config.env_vars.items(): actual_value = os.environ.get(key, "NOT_SET") status = "โœ…" if actual_value == expected_value else "โŒ" print(f" {key}: {actual_value} {status}") return True except Exception as e: print(f"โŒ Environment variable test failed: {e}") return False def main(): """Run all tests""" print("๐Ÿš€ HF Spaces Configuration Test Suite") print("=" * 60) tests = [ ("Configuration Import", test_hf_spaces_config), ("Cache Directories", test_cache_directories), ("Environment Variables", test_environment_variables), ] results = [] for test_name, test_func in tests: print(f"\n๐Ÿงช Running: {test_name}") result = test_func() results.append((test_name, result)) # Summary print(f"\n๐Ÿ“Š Test Summary") print("=" * 30) passed = sum(1 for _, result in results if result) total = len(results) for test_name, result in results: status = "โœ… PASS" if result else "โŒ FAIL" print(f" {test_name}: {status}") print(f"\nOverall: {passed}/{total} tests passed") if passed == total: print("๐ŸŽ‰ All tests passed! HF Spaces configuration is working correctly.") return 0 else: print("โš ๏ธ Some tests failed. Please check the configuration.") return 1 if __name__ == "__main__": sys.exit(main())