1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
import subprocess
import pytest # type: ignore[import-not-found]
from helpers import run_pipx_cli
@pytest.fixture
def shared_libs(pipx_ultra_temp_env):
# local import to get the shared_libs object patched by fixtures
from pipx.shared_libs import shared_libs as _shared_libs
yield _shared_libs
def test_upgrade_shared(shared_libs, capsys, caplog):
assert shared_libs.has_been_updated_this_run is False
assert shared_libs.is_valid is False
assert run_pipx_cli(["upgrade-shared", "-v"]) == 0
captured = capsys.readouterr()
assert "creating shared libraries" in captured.err
assert "upgrading shared libraries" in captured.err
assert "Upgrading shared libraries in" in caplog.text
assert "Already upgraded libraries in" not in caplog.text
assert shared_libs.has_been_updated_this_run is True
assert shared_libs.is_valid is True
shared_libs.has_been_updated_this_run = False
assert run_pipx_cli(["upgrade-shared", "-v"]) == 0
captured = capsys.readouterr()
assert "creating shared libraries" not in captured.err
assert "upgrading shared libraries" in captured.err
assert "Upgrading shared libraries in" in caplog.text
assert "Already upgraded libraries in" not in caplog.text
assert shared_libs.has_been_updated_this_run is True
assert run_pipx_cli(["upgrade-shared", "-v"]) == 0
assert "Already upgraded libraries in" in caplog.text
def test_upgrade_shared_pip_args(shared_libs, capsys, caplog):
assert shared_libs.has_been_updated_this_run is False
assert shared_libs.is_valid is False
assert run_pipx_cli(["upgrade-shared", "-v", "--pip-args='--no-index'"]) == 1
captured = capsys.readouterr()
assert "creating shared libraries" in captured.err
assert "upgrading shared libraries" in captured.err
assert "Upgrading shared libraries in" in caplog.text
assert "Already upgraded libraries in" not in caplog.text
assert shared_libs.has_been_updated_this_run is False
assert shared_libs.is_valid is True
def test_upgrade_shared_pin_pip(shared_libs):
def pip_version():
cmd = "from importlib.metadata import version; print(version('pip'))"
ret = subprocess.run([shared_libs.python_path, "-c", cmd], check=True, capture_output=True, text=True)
return ret.stdout.strip()
assert shared_libs.has_been_updated_this_run is False
assert shared_libs.is_valid is False
assert run_pipx_cli(["upgrade-shared", "-v", "--pip-args=pip==24.0"]) == 0
assert shared_libs.is_valid is True
assert pip_version() == "24.0"
shared_libs.has_been_updated_this_run = False # reset for next run
assert run_pipx_cli(["upgrade-shared", "-v", "--pip-args=pip==23.3.2"]) == 0
assert shared_libs.is_valid is True
assert pip_version() == "23.3.2"
|