"""Exercise Windows ownership without recording a user screen or running FFmpeg.""" import os from pathlib import Path import subprocess import sys import time import psutil import pytest @pytest.mark.skipif(os.name != "nt", reason="Windows capture process ownership") def test_worker_exit_terminates_owned_capture_child(): project = str(Path(__file__).resolve().parents[2]) script = f""" import os, subprocess, sys sys.path.insert(0, {project!r}) from artemis.plugins.recording_process import CaptureProcessJob job = CaptureProcessJob() child = subprocess.Popen([sys.executable, '-c', 'import time; time.sleep(120)'], creationflags=0x08000000, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) job.assign(child.pid) print(child.pid, flush=True) os._exit(0) """ parent = subprocess.run( [sys.executable, "-c", script], capture_output=True, text=True, timeout=15, creationflags=0x08000000, check=True, ) pid = int(parent.stdout.strip()) for _ in range(50): if not psutil.pid_exists(pid): return time.sleep(0.1) # Only the disposable child created above is eligible for cleanup. psutil.Process(pid).kill() pytest.fail("Owned capture child survived abrupt worker exit")