コード例 #1
0
ファイル: test_pipx_metadata_file.py プロジェクト: pypa/pipx
def test_package_install(monkeypatch, tmp_path, pipx_temp_env):
    pipx_venvs_dir = pipx.constants.PIPX_HOME / "venvs"

    run_pipx_cli(["install", PKG["pycowsay"]["spec"]])
    assert (pipx_venvs_dir / "pycowsay" / "pipx_metadata.json").is_file()

    pipx_metadata = PipxMetadata(pipx_venvs_dir / "pycowsay")
    pycowsay_package_ref = create_package_info_ref("pycowsay", "pycowsay",
                                                   pipx_venvs_dir)
    assert_package_metadata(pipx_metadata.main_package, pycowsay_package_ref)
    assert pipx_metadata.injected_packages == {}
コード例 #2
0
ファイル: test_pipx_metadata_file.py プロジェクト: pypa/pipx
def test_package_inject(monkeypatch, tmp_path, pipx_temp_env):
    pipx_venvs_dir = pipx.constants.PIPX_HOME / "venvs"

    run_pipx_cli(["install", PKG["pycowsay"]["spec"]])
    run_pipx_cli(["inject", "pycowsay", PKG["black"]["spec"]])

    assert (pipx_venvs_dir / "pycowsay" / "pipx_metadata.json").is_file()
    pipx_metadata = PipxMetadata(pipx_venvs_dir / "pycowsay")

    assert pipx_metadata.injected_packages.keys() == {"black"}
    black_package_ref = create_package_info_ref("pycowsay",
                                                "black",
                                                pipx_venvs_dir,
                                                include_apps=False)
    assert_package_metadata(pipx_metadata.injected_packages["black"],
                            black_package_ref)
コード例 #3
0
ファイル: test_list.py プロジェクト: pypa/pipx
def test_list_json(pipx_temp_env, capsys):
    pipx_venvs_dir = constants.PIPX_HOME / "venvs"
    venv_bin_dir = "Scripts" if constants.WINDOWS else "bin"

    assert not run_pipx_cli(["install", PKG["pycowsay"]["spec"]])
    assert not run_pipx_cli(["install", PKG["pylint"]["spec"]])
    assert not run_pipx_cli(["inject", "pylint", PKG["isort"]["spec"]])
    captured = capsys.readouterr()

    assert not run_pipx_cli(["list", "--json"])
    captured = capsys.readouterr()

    assert not re.search(r"\S", captured.err)
    json_parsed = json.loads(captured.out,
                             object_hook=_json_decoder_object_hook)

    # raises error if not valid json
    assert sorted(json_parsed["venvs"].keys()) == ["pycowsay", "pylint"]

    # pycowsay venv
    pycowsay_package_ref = create_package_info_ref("pycowsay", "pycowsay",
                                                   pipx_venvs_dir)
    assert_package_metadata(
        PackageInfo(
            **json_parsed["venvs"]["pycowsay"]["metadata"]["main_package"]),
        pycowsay_package_ref,
    )
    assert json_parsed["venvs"]["pycowsay"]["metadata"][
        "injected_packages"] == {}

    # pylint venv
    pylint_package_ref = create_package_info_ref(
        "pylint",
        "pylint",
        pipx_venvs_dir,
        **{
            "app_paths_of_dependencies": {
                "isort":
                [pipx_venvs_dir / "pylint" / venv_bin_dir / app_name("isort")]
            }
        },
    )
    assert_package_metadata(
        PackageInfo(
            **json_parsed["venvs"]["pylint"]["metadata"]["main_package"]),
        pylint_package_ref,
    )
    assert sorted(json_parsed["venvs"]["pylint"]["metadata"]
                  ["injected_packages"].keys()) == ["isort"]
    isort_package_ref = create_package_info_ref("pylint",
                                                "isort",
                                                pipx_venvs_dir,
                                                include_apps=False)
    print(isort_package_ref)
    print(
        PackageInfo(**json_parsed["venvs"]["pylint"]["metadata"]
                    ["injected_packages"]["isort"]))
    assert_package_metadata(
        PackageInfo(**json_parsed["venvs"]["pylint"]["metadata"]
                    ["injected_packages"]["isort"]),
        isort_package_ref,
    )