(create_pex_venv)
| 293 | ), |
| 294 | ) |
| 295 | def test_venv_pex_interpreter_special_modes(create_pex_venv): |
| 296 | # type: (CreatePexVenv) -> None |
| 297 | venv = create_pex_venv() |
| 298 | |
| 299 | # special mode execute module: -m module |
| 300 | returncode, stdout, stderr = execute_venv_pex_interpreter(venv, extra_args=["-m"]) |
| 301 | assert 2 == returncode, stderr |
| 302 | assert "" == stdout |
| 303 | |
| 304 | returncode, stdout, stderr = execute_venv_pex_interpreter( |
| 305 | venv, extra_args=["-m", "fabric", "--version"] |
| 306 | ) |
| 307 | assert 0 == returncode, stderr |
| 308 | versions = parse_fabric_version_output(stdout) |
| 309 | assert FABRIC_VERSION == versions["Fabric"] |
| 310 | |
| 311 | # special mode execute code string: -c <str> |
| 312 | returncode, stdout, stderr = execute_venv_pex_interpreter(venv, extra_args=["-c"]) |
| 313 | assert 2 == returncode, stderr |
| 314 | assert "" == stdout |
| 315 | |
| 316 | fabric_file_code = "import fabric, os; print(os.path.realpath(fabric.__file__))" |
| 317 | expected_fabric_file_path = expected_file_path(venv, "fabric") |
| 318 | |
| 319 | returncode, stdout, stderr = execute_venv_pex_interpreter( |
| 320 | venv, extra_args=["-c", fabric_file_code] |
| 321 | ) |
| 322 | assert 0 == returncode, stderr |
| 323 | assert expected_fabric_file_path == stdout.strip() |
| 324 | |
| 325 | # special mode execute stdin: - |
| 326 | returncode, stdout, stderr = execute_venv_pex_interpreter( |
| 327 | venv, code=fabric_file_code, extra_args=["-"] |
| 328 | ) |
| 329 | assert 0 == returncode, stderr |
| 330 | assert expected_fabric_file_path == stdout.strip() |
| 331 | |
| 332 | # special mode execute python file: <py file name> |
| 333 | with named_temporary_file(prefix="code", suffix=".py", mode="w") as fp: |
| 334 | fp.write(fabric_file_code) |
| 335 | fp.close() |
| 336 | returncode, stdout, stderr = execute_venv_pex_interpreter( |
| 337 | venv, code=fabric_file_code, extra_args=[fp.name] |
| 338 | ) |
| 339 | assert 0 == returncode, stderr |
| 340 | assert expected_fabric_file_path == stdout.strip() |
| 341 | |
| 342 | |
| 343 | @pytest.mark.parametrize( |
nothing calls this directly
no test coverage detected