#!/usr/bin/env python3 """ Simple test script to verify check_requirements.py works correctly """ import subprocess import json import sys def test_check_requirements(): """Test the check_requirements.py script""" print("Testing check_requirements.py...") print("=" * 60) # Test 1: All valid modules print("\n Test 1: All valid standard library modules") result = subprocess.run( [sys.executable, "scripts/check_requirements.py", "json", "sys", "os"], capture_output=True, text=True, encoding="utf-8", ) print(f"Exit code: {result.returncode}") print(f"Output:\n{result.stdout}") try: data = json.loads(result.stdout) assert all(v == "ok" for v in data.values()), "All modules should be 'ok'" assert result.returncode == 0, "Exit code should be 0" print("✓ Test 1 passed") except Exception as e: print(f"✗ Test 1 failed: {e}") return False # Test 2: Mix of valid and invalid modules print("\n\nTest 2: Mix of valid and invalid modules") result = subprocess.run( [sys.executable, "scripts/check_requirements.py", "json", "nonexistent_module"], capture_output=True, text=True, encoding="utf-8", ) print(f"Exit code: {result.returncode}") print(f"Output:\n{result.stdout}") try: data = json.loads(result.stdout) assert data["json"] == "ok", "json should be ok" assert "error" in data["nonexistent_module"], "nonexistent_module should have error" assert result.returncode == 1, "Exit code should be 1 when errors exist" print("✓ Test 2 passed") except Exception as e: print(f"✗ Test 2 failed: {e}") return False print("\n" + "=" * 60) print("All tests passed! ✓") return True if __name__ == "__main__": success = test_check_requirements() sys.exit(0 if success else 1)