#!/usr/bin/env python3 """ Simple test script for autusm to verify the implementation. """ import sys import tempfile from pathlib import Path # Add the src directory to the path so we can import autusm sys.path.insert(0, str(Path(__file__).parent / "src")) from autusm.models import PackageInfo, BuildSystem, BuildSystemType, USMManifest from autusm.generator import ScriptGenerator from autusm.manifest import ManifestGenerator def test_models(): """Test the data models.""" print("Testing data models...") # Test PackageInfo package_info = PackageInfo( name="test-package", version="1.0.0", summary="A test package", description="This is a test package for autusm" ) print(f"Created PackageInfo: {package_info.name} v{package_info.version}") # Test BuildSystem build_system = BuildSystem( type=BuildSystemType.CMAKE, config_files=["CMakeLists.txt"], build_files=["CMakeLists.txt"] ) print(f"Created BuildSystem: {build_system.type.value}") # Test USMManifest manifest = USMManifest.from_package_info(package_info) print(f"Created USMManifest: {manifest.name}") print("✓ Data models test passed\n") def test_script_generator(): """Test the script generator.""" print("Testing script generator...") package_info = PackageInfo( name="test-package", version="1.0.0", summary="A test package" ) build_system = BuildSystem( type=BuildSystemType.CMAKE, config_files=["CMakeLists.txt"] ) generator = ScriptGenerator() with tempfile.TemporaryDirectory() as temp_dir: output_dir = Path(temp_dir) / "scripts" generator.generate_scripts(package_info, build_system, output_dir) # Check if scripts were created acquire_script = output_dir / "acquire" build_script = output_dir / "build" install_script = output_dir / "install" if acquire_script.exists() and build_script.exists() and install_script.exists(): print("✓ Scripts generated successfully") else: print("✗ Script generation failed") print("✓ Script generator test passed\n") def test_manifest_generator(): """Test the manifest generator.""" print("Testing manifest generator...") package_info = PackageInfo( name="test-package", version="1.0.0", summary="A test package", description="This is a test package for autusm", url="https://github.com/example/test-package" ) build_system = BuildSystem( type=BuildSystemType.CMAKE, config_files=["CMakeLists.txt"] ) generator = ManifestGenerator() manifest = generator.generate(package_info, build_system) # Check if manifest was created correctly if (manifest.name == "test-package" and manifest.version == "1.0.0" and manifest.summary == "A test package"): print("✓ Manifest generated successfully") # Test JSON serialization json_str = manifest.to_json() if '"name": "test-package"' in json_str: print("✓ JSON serialization works") else: print("✗ JSON serialization failed") else: print("✗ Manifest generation failed") print("✓ Manifest generator test passed\n") def main(): """Run all tests.""" print("Running autusm implementation tests...\n") try: test_models() test_script_generator() test_manifest_generator() print("All tests passed! ✓") return 0 except Exception as e: print(f"Test failed: {e}") import traceback traceback.print_exc() return 1 if __name__ == "__main__": sys.exit(main())