textilindo-ai-assistant / test_build.py
harismlnaslm's picture
Initial commit: Textilindo AI Assistant for HF Spaces
298d6c1
#!/usr/bin/env python3
"""
Test script to verify the build configuration
"""
import sys
import subprocess
from pathlib import Path
def test_imports():
"""Test if all required packages can be imported"""
print("πŸ” Testing package imports...")
required_packages = [
"torch",
"transformers",
"accelerate",
"peft",
"datasets",
"gradio",
"flask",
"requests",
"numpy",
"sklearn"
]
failed_imports = []
for package in required_packages:
try:
__import__(package)
print(f"βœ… {package}")
except ImportError as e:
print(f"❌ {package}: {e}")
failed_imports.append(package)
return len(failed_imports) == 0
def test_scripts():
"""Test if scripts can be found and are executable"""
print("\nπŸ” Testing scripts...")
scripts_dir = Path("scripts")
if not scripts_dir.exists():
print("❌ Scripts directory not found")
return False
required_scripts = [
"check_training_ready.py",
"create_sample_dataset.py",
"setup_textilindo_training.py",
"train_textilindo_ai.py",
"test_textilindo_ai.py"
]
missing_scripts = []
for script in required_scripts:
script_path = scripts_dir / script
if script_path.exists():
print(f"βœ… {script}")
else:
print(f"❌ {script} not found")
missing_scripts.append(script)
return len(missing_scripts) == 0
def test_config_files():
"""Test if configuration files exist"""
print("\nπŸ” Testing configuration files...")
config_files = [
"requirements.txt",
"app.py",
"app_hf_spaces.py",
"health_check.py"
]
missing_files = []
for config_file in config_files:
if Path(config_file).exists():
print(f"βœ… {config_file}")
else:
print(f"❌ {config_file} not found")
missing_files.append(config_file)
return len(missing_files) == 0
def test_script_execution():
"""Test if a simple script can be executed"""
print("\nπŸ” Testing script execution...")
try:
# Test the check_training_ready script
result = subprocess.run([
sys.executable, "scripts/check_training_ready.py"
], capture_output=True, text=True, timeout=30)
if result.returncode == 0:
print("βœ… Script execution successful")
return True
else:
print(f"❌ Script execution failed: {result.stderr}")
return False
except subprocess.TimeoutExpired:
print("❌ Script execution timed out")
return False
except Exception as e:
print(f"❌ Script execution error: {e}")
return False
def main():
"""Main test function"""
print("πŸ§ͺ Textilindo AI Assistant - Build Test")
print("=" * 50)
tests = [
("Package Imports", test_imports),
("Scripts Availability", test_scripts),
("Configuration Files", test_config_files),
("Script Execution", test_script_execution)
]
results = []
for test_name, test_func in tests:
print(f"\nπŸ“‹ {test_name}")
print("-" * 30)
result = test_func()
results.append((test_name, result))
print("\n" + "=" * 50)
print("πŸ“Š Test Results:")
all_passed = True
for test_name, result in results:
status = "βœ… PASS" if result else "❌ FAIL"
print(f"{status} {test_name}")
if not result:
all_passed = False
if all_passed:
print("\nπŸŽ‰ All tests passed! Build configuration is ready.")
print("\nπŸ“‹ Next steps:")
print("1. Push to Hugging Face Space")
print("2. Set environment variables")
print("3. Deploy and test")
else:
print("\n❌ Some tests failed. Please fix the issues above.")
sys.exit(1)
if __name__ == "__main__":
main()