Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_uninstall_with_missing_interpreter(pipx_temp_env, capsys):
assert not run_pipx_cli(["install", "pycowsay"])
_, python_path = util.get_venv_paths(constants.PIPX_LOCAL_VENVS / "pycowsay")
assert python_path.is_file()
python_path.unlink()
assert not python_path.is_file()
assert not run_pipx_cli(["uninstall", "pycowsay"])
def test_missing_interpreter(pipx_temp_env, monkeypatch, capsys):
assert not run_pipx_cli(["install", "pycowsay"])
_, python_path = util.get_venv_paths(constants.PIPX_LOCAL_VENVS / "pycowsay")
assert (python_path).is_file()
assert not run_pipx_cli(["list"])
captured = capsys.readouterr()
assert "package pycowsay has invalid interpreter" not in captured.out
python_path.unlink()
assert not run_pipx_cli(["list"])
captured = capsys.readouterr()
assert "package pycowsay has invalid interpreter" in captured.out
def __init__(self):
self.root = PIPX_SHARED_LIBS
self.bin_path, self.python_path = get_venv_paths(self.root)
# i.e. bin_path is ~/.local/pipx/shared/bin
# i.e. python_path is ~/.local/pipx/shared/python
self._site_packages = None
self.has_been_updated_this_run = False
def __init__(
self, path: Path, *, verbose: bool = False, python: str = DEFAULT_PYTHON
) -> None:
self.root = path
self._python = python
self.bin_path, self.python_path = get_venv_paths(self.root)
self.pipx_metadata = PipxMetadata(venv_dir=path)
self.verbose = verbose
self.do_animation = not verbose
try:
self._existing = self.root.exists() and next(self.root.iterdir())
except StopIteration:
self._existing = False
if self._existing and self.uses_shared_libs and not shared_libs.is_valid:
logging.warning(
f"Shared libraries not found, but are required for package {self.root.name}. "
"Attempting to install now."
)
shared_libs.create([])
if shared_libs.is_valid:
logging.info("Successfully created shared libraries")