#!/usr/bin/env python3 """ Test script for deb-mock sbuild integration """ import os import sys import tempfile import shutil from pathlib import Path # Add the current directory to Python path sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) from deb_mock.config import Config from deb_mock.sbuild import SbuildWrapper from deb_mock.exceptions import SbuildError def test_sbuild_integration(): """Test the sbuild integration end-to-end""" print("๐Ÿงช Testing deb-mock sbuild integration...") # Create test configuration config = Config( chroot_name="debian-trixie-amd64", suite="trixie", architecture="amd64", output_dir="./test-output", verbose=True ) try: # Initialize sbuild wrapper print("๐Ÿ“ฆ Initializing sbuild wrapper...") wrapper = SbuildWrapper(config) print("โœ… Sbuild wrapper initialized successfully") # Test chroot info print("\n๐Ÿ” Testing chroot info...") chroot_info = wrapper.get_chroot_info() print(f"Chroot info: {chroot_info}") # Test dependency checking print("\n๐Ÿ“‹ Testing dependency checking...") test_package = "test-sbuild-package" if os.path.exists(test_package): deps = wrapper.check_dependencies(test_package) print(f"Dependencies: {deps}") if not deps["satisfied"] and deps["missing"]: print(f"Missing dependencies: {deps['missing']}") print("Attempting to install missing dependencies...") try: wrapper.install_build_dependencies(deps["missing"]) print("โœ… Dependencies installed successfully") except SbuildError as e: print(f"โš ๏ธ Could not install dependencies: {e}") # Test package building (if dependencies are satisfied) print("\n๐Ÿ”จ Testing package building...") if os.path.exists(test_package): try: result = wrapper.build_package(test_package) print(f"Build result: {result}") if result["success"]: print("โœ… Package built successfully!") else: print("โŒ Package build failed") except SbuildError as e: print(f"โš ๏ธ Package build failed (expected for test): {e}") print("\n๐ŸŽ‰ Sbuild integration test completed!") return True except Exception as e: print(f"โŒ Test failed: {e}") import traceback traceback.print_exc() return False def test_cli_commands(): """Test the new CLI commands""" print("\n๐Ÿ–ฅ๏ธ Testing CLI commands...") try: # Test chroot info command print("Testing chroot-info command...") os.system("python3 -m deb_mock.cli chroot-info debian-trixie-amd64") # Test check-deps command print("\nTesting check-deps command...") if os.path.exists("test-sbuild-package"): os.system("python3 -m deb_mock.cli check-deps test-sbuild-package") print("โœ… CLI command tests completed!") return True except Exception as e: print(f"โŒ CLI test failed: {e}") return False if __name__ == "__main__": print("๐Ÿš€ Starting deb-mock sbuild integration tests...\n") # Run tests success = True success &= test_sbuild_integration() success &= test_cli_commands() if success: print("\n๐ŸŽฏ All tests passed! Sbuild integration is working.") sys.exit(0) else: print("\n๐Ÿ’ฅ Some tests failed. Check the output above.") sys.exit(1)