import os from pathlib import Path import shutil import subprocess import unittest class PowerShellTests(unittest.TestCase): def test_native_ast_and_synthetic_collectors(self): executable = shutil.which('powershell.exe') if os.name == 'nt' else shutil.which('pwsh') self.run_collectors(executable) def test_powershell_7_collectors(self): self.run_collectors(shutil.which('pwsh')) def run_collectors(self, executable): if not executable: self.skipTest('No PowerShell runtime available; native AST/collector tests require Windows PowerShell 5.1 or pwsh.') script=Path('tests/powershell/Test-Collectors.ps1').resolve() result=subprocess.run([executable,'-NoLogo','-NoProfile','-NonInteractive','-File',str(script)],capture_output=True,text=True,timeout=60,shell=False) self.assertEqual(result.returncode,0,result.stdout+'\n'+result.stderr) self.assertIn('synthetic collector tests passed',result.stdout)