import sys from io import StringIO from unittest.mock import patch from browser_harness import run def test_c_flag_executes_code(): stdout = StringIO() with patch.object(sys, "argv", ["browser-harness", "-c", "print('hello from -c')"]), \ patch("browser_harness.run.ensure_daemon"), \ patch("browser_harness.run.print_update_banner"), \ patch("sys.stdout", stdout): run.main() assert stdout.getvalue().strip() == "hello from -c" def test_c_flag_does_not_read_stdin(): stdin_read = [] fake_stdin = StringIO("should not be read") fake_stdin.read = lambda: stdin_read.append(True) or "" with patch.object(sys, "argv", ["browser-harness", "-c", "x = 1"]), \ patch("browser_harness.run.ensure_daemon"), \ patch("browser_harness.run.print_update_banner"), \ patch("sys.stdin", fake_stdin): run.main() assert not stdin_read, "stdin should not be read when -c is passed"