Skip to content

Commit

Permalink
Merge single and multiple package install test helper functions
Browse files Browse the repository at this point in the history
  • Loading branch information
sam-sw committed Dec 18, 2023
1 parent e4e4526 commit 25be441
Showing 1 changed file with 8 additions and 27 deletions.
35 changes: 8 additions & 27 deletions tests/test_install.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,27 +22,8 @@ def test_help_text(monkeypatch, capsys):
assert "apps you can run from anywhere" in captured.out


def install_package(capsys, pipx_temp_env, caplog, package, package_name=""):
if not package_name:
package_name = package

run_pipx_cli(["install", package, "--verbose"])
captured = capsys.readouterr()
assert f"installed package {package_name}" in captured.out
if not sys.platform.startswith("win"):
# TODO assert on windows too
# https://github.com/pypa/pipx/issues/217
assert "symlink missing or pointing to unexpected location" not in captured.out
assert "not modifying" not in captured.out
assert "is not on your PATH environment variable" not in captured.out
assert "⚠️" not in caplog.text
assert "WARNING" not in caplog.text


def install_multiple_packages(capsys, pipx_temp_env, caplog, packages, package_names=()):
if not package_names:
package_names = packages
elif len(package_names) != len(packages):
def install_packages(capsys, pipx_temp_env, caplog, packages, package_names=()):
if len(package_names) != len(packages):
package_names = packages

run_pipx_cli(["install", *packages, "--verbose"])
Expand All @@ -64,11 +45,11 @@ def install_multiple_packages(capsys, pipx_temp_env, caplog, packages, package_n
[("pycowsay", "pycowsay"), ("black", PKG["black"]["spec"])],
)
def test_install_easy_packages(capsys, pipx_temp_env, caplog, package_name, package_spec):
install_package(capsys, pipx_temp_env, caplog, package_spec, package_name)
install_packages(capsys, pipx_temp_env, caplog, [package_spec], [package_name])


def test_install_easy_multiple_packages(capsys, pipx_temp_env, caplog):
install_multiple_packages(
install_packages(
capsys,
pipx_temp_env,
caplog,
Expand All @@ -92,7 +73,7 @@ def test_install_tricky_packages(capsys, pipx_temp_env, caplog, package_name, pa
if sys.platform.startswith("win") and package_name == "ansible":
pytest.skip("Ansible is not installable on Windows")

install_package(capsys, pipx_temp_env, caplog, package_spec, package_name)
install_packages(capsys, pipx_temp_env, caplog, [package_spec], [package_name])


def test_install_tricky_multiple_packages(capsys, pipx_temp_env, caplog):
Expand All @@ -102,7 +83,7 @@ def test_install_tricky_multiple_packages(capsys, pipx_temp_env, caplog):
packages = ["cloudtoken", "awscli", "shell-functools"]
package_specs = [PKG[package]["spec"] for package in packages]

install_multiple_packages(capsys, pipx_temp_env, caplog, package_specs, packages)
install_packages(capsys, pipx_temp_env, caplog, package_specs, packages)


@pytest.mark.parametrize(
Expand All @@ -114,7 +95,7 @@ def test_install_tricky_multiple_packages(capsys, pipx_temp_env, caplog):
],
)
def test_install_package_specs(capsys, pipx_temp_env, caplog, package_name, package_spec):
install_package(capsys, pipx_temp_env, caplog, package_spec, package_name)
install_packages(capsys, pipx_temp_env, caplog, [package_spec], [package_name])


def test_force_install(pipx_temp_env, capsys):
Expand Down Expand Up @@ -159,7 +140,7 @@ def test_include_deps(pipx_temp_env, capsys):
],
)
def test_name_tricky_characters(caplog, capsys, pipx_temp_env, package_name, package_spec):
install_package(capsys, pipx_temp_env, caplog, package_spec, package_name)
install_packages(capsys, pipx_temp_env, caplog, [package_spec], [package_name])


def test_extra(pipx_temp_env, capsys):
Expand Down

0 comments on commit 25be441

Please sign in to comment.