| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- #!/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())
|