def test_materialize_input_files(rule_runner: RuleRunner) -> None: program_text = b'#!/usr/bin/python\nprint("hello")' binary = create_mock_run_request(rule_runner, program_text) with mock_console(rule_runner.options_bootstrapper): result = rule_runner.run_interactive_process( InteractiveProcess( argv=("./program.py", ), run_in_workspace=False, input_digest=binary.digest, )) assert result.exit_code == 0
def run_shunit2( rule_runner: RuleRunner, test_target: Target, *, extra_args: list[str] | None = None, env: dict[str, str] | None = None, ) -> TestResult: rule_runner.set_options( [ "--backend-packages=pants.backend.shell", *(extra_args or ()), ], env=env, env_inherit={"PATH", "PYENV_ROOT", "HOME"}, ) inputs = [Shunit2FieldSet.create(test_target)] test_result = rule_runner.request(TestResult, inputs) debug_request = rule_runner.request(TestDebugRequest, inputs) if debug_request.process is not None: with mock_console(rule_runner.options_bootstrapper): debug_result = rule_runner.run_interactive_process(debug_request.process) assert test_result.exit_code == debug_result.exit_code return test_result
def run_pytest( rule_runner: RuleRunner, test_target: Target, *, extra_args: list[str] | None = None, env: dict[str, str] | None = None, ) -> TestResult: args = [ "--backend-packages=pants.backend.python", f"--source-root-patterns={SOURCE_ROOT}", *(extra_args or ()), ] rule_runner.set_options(args, env=env, env_inherit={"PATH", "PYENV_ROOT", "HOME"}) inputs = [PythonTestFieldSet.create(test_target)] test_result = rule_runner.request(TestResult, inputs) debug_request = rule_runner.request(TestDebugRequest, inputs) if debug_request.process is not None: with mock_console(rule_runner.options_bootstrapper): debug_result = rule_runner.run_interactive_process( debug_request.process) assert test_result.exit_code == debug_result.exit_code return test_result