"""Integration test utils.""" from subprocess import PIPE, STDOUT, Popen, TimeoutExpired def run_command( cmd: list[str], expected_returncode: int = 0, description: str = "Test failed", env: dict[str, str] | None = None, ) -> tuple[str, str]: """Execute a CLI command.""" if not env: proc = Popen(cmd, stderr=STDOUT, stdout=PIPE) else: proc = Popen(cmd, env=env, stderr=STDOUT, stdout=PIPE) try: stdout, stderr = proc.communicate(timeout=10) except TimeoutExpired: proc.kill() stdout, stderr = proc.communicate() assert ( proc.returncode == expected_returncode ), f'{description}\nCommand: {" ".join(cmd)}\nReturn code: {proc.returncode}\nStdout: {str(stdout)}\nStderr: {str(stderr)}' return str(stdout), str(stderr)