コード例 #1
0
def test_use_pep517(data, source, expected):
    """
    Test that we choose correctly between PEP 517 and legacy code paths
    """
    src = data.src.join(source)
    req = InstallRequirement(None, None, source_dir=src)
    req.load_pyproject_toml()
    assert req.use_pep517 is expected
コード例 #2
0
ファイル: test_pep517.py プロジェクト: User8190/pip
def test_use_pep517(shared_data, source, expected):
    """
    Test that we choose correctly between PEP 517 and legacy code paths
    """
    src = shared_data.src.joinpath(source)
    req = InstallRequirement(None, None)
    req.source_dir = src  # make req believe it has been unpacked
    req.load_pyproject_toml()
    assert req.use_pep517 is expected
コード例 #3
0
ファイル: test_pep517.py プロジェクト: pythons65/pip-1
def test_backend(tmpdir, data):
    """Can we call a requirement's backend successfully?"""
    project = make_project(tmpdir, backend="dummy_backend")
    req = InstallRequirement(None, None, source_dir=project)
    req.load_pyproject_toml()
    env = BuildEnvironment()
    finder = PackageFinder([data.backends], [], session=PipSession())
    env.install_requirements(finder, ["dummy_backend"], "Installing")
    assert not env.missing_requirements(["dummy_backend"])
    assert hasattr(req.pep517_backend, 'build_wheel')
    with env:
        assert req.pep517_backend.build_wheel("dir") == "Backend called"
コード例 #4
0
ファイル: test_pep517.py プロジェクト: pradyunsg/pip
def test_use_pep517_rejects_setup_cfg_only(shared_data: TestData) -> None:
    """
    Test that projects with setup.cfg but no pyproject.toml are rejected.
    """
    src = shared_data.src.joinpath("pep517_setup_cfg_only")
    req = InstallRequirement(None, None)
    req.source_dir = os.fspath(src)  # make req believe it has been unpacked
    with pytest.raises(InstallationError) as e:
        req.load_pyproject_toml()
    err_msg = e.value.args[0]
    assert ("does not appear to be a Python project: "
            "neither 'setup.py' nor 'pyproject.toml' found" in err_msg)
コード例 #5
0
ファイル: test_pep517.py プロジェクト: Globalync/pip
def test_backend(tmpdir, data):
    """Check we can call a requirement's backend successfully"""
    project_dir = make_project(tmpdir, backend="dummy_backend")
    req = InstallRequirement(None, None, source_dir=project_dir)
    req.load_pyproject_toml()
    env = BuildEnvironment()
    finder = make_test_finder(find_links=[data.backends])
    env.install_requirements(finder, ["dummy_backend"], 'normal', "Installing")
    conflicting, missing = env.check_requirements(["dummy_backend"])
    assert not conflicting and not missing
    assert hasattr(req.pep517_backend, 'build_wheel')
    with env:
        assert req.pep517_backend.build_wheel("dir") == "Backend called"
コード例 #6
0
ファイル: test_pep517.py プロジェクト: hrnciar/pip
def test_backend_path(tmpdir: Path, data: TestData) -> None:
    """Check we can call a backend inside the project"""
    project_dir = make_project(tmpdir, backend="dummy_backend", backend_path=["."])
    (project_dir / "dummy_backend.py").write_text(dummy_backend_code)
    req = InstallRequirement(None, None)
    req.source_dir = project_dir  # make req believe it has been unpacked
    req.load_pyproject_toml()

    env = BuildEnvironment()
    assert hasattr(req.pep517_backend, "build_wheel")
    with env:
        assert req.pep517_backend is not None
        assert req.pep517_backend.build_wheel("dir") == "Backend called"
コード例 #7
0
ファイル: test_pep517.py プロジェクト: Globalync/pip
def test_backend_path(tmpdir, data):
    """Check we can call a backend inside the project"""
    project_dir = make_project(tmpdir,
                               backend="dummy_backend",
                               backend_path=['.'])
    (project_dir / 'dummy_backend.py').write_text(dummy_backend_code)
    req = InstallRequirement(None, None, source_dir=project_dir)
    req.load_pyproject_toml()

    env = BuildEnvironment()
    assert hasattr(req.pep517_backend, 'build_wheel')
    with env:
        assert req.pep517_backend.build_wheel("dir") == "Backend called"
コード例 #8
0
ファイル: test_pep517.py プロジェクト: hrnciar/pip
def test_backend(tmpdir: Path, data: TestData) -> None:
    """Check we can call a requirement's backend successfully"""
    project_dir = make_project(tmpdir, backend="dummy_backend")
    req = InstallRequirement(None, None)
    req.source_dir = project_dir  # make req believe it has been unpacked
    req.load_pyproject_toml()
    env = BuildEnvironment()
    finder = make_test_finder(find_links=[data.backends])
    env.install_requirements(finder, ["dummy_backend"], "normal", "Installing")
    conflicting, missing = env.check_requirements(["dummy_backend"])
    assert not conflicting and not missing
    assert hasattr(req.pep517_backend, "build_wheel")
    with env:
        assert req.pep517_backend is not None
        assert req.pep517_backend.build_wheel("dir") == "Backend called"
コード例 #9
0
ファイル: test_pep517.py プロジェクト: User8190/pip
def test_pep517_parsing_checks_requirements(tmpdir, spec):
    tmpdir.joinpath("pyproject.toml").write_text(
        dedent("""
        [build-system]
        requires = [{!r}]
        build-backend = "foo"
        """.format(spec)))
    req = InstallRequirement(None, None)
    req.source_dir = tmpdir  # make req believe it has been unpacked

    with pytest.raises(InstallationError) as e:
        req.load_pyproject_toml()

    err_msg = e.value.args[0]
    assert "contains an invalid requirement" in err_msg
コード例 #10
0
def test_disabling_pep517_invalid(data, source, msg):
    """
    Test that we fail if we try to disable PEP 517 when it's not acceptable
    """
    src = data.src.join(source)
    req = InstallRequirement(None, None, source_dir=src)

    # Simulate --no-use-pep517
    req.use_pep517 = False

    with pytest.raises(InstallationError) as e:
        req.load_pyproject_toml()

    err_msg = e.value.args[0]
    assert "Disabling PEP 517 processing is invalid" in err_msg
    assert msg in err_msg
コード例 #11
0
ファイル: test_pep517.py プロジェクト: Globalync/pip
def test_backend_path_and_dep(tmpdir, data):
    """Check we can call a requirement's backend successfully"""
    project_dir = make_project(tmpdir,
                               backend="dummy_internal_backend",
                               backend_path=['.'])
    (project_dir / 'dummy_internal_backend.py'
     ).write_text("from dummy_backend import build_wheel")
    req = InstallRequirement(None, None, source_dir=project_dir)
    req.load_pyproject_toml()
    env = BuildEnvironment()
    finder = make_test_finder(find_links=[data.backends])
    env.install_requirements(finder, ["dummy_backend"], 'normal', "Installing")

    assert hasattr(req.pep517_backend, 'build_wheel')
    with env:
        assert req.pep517_backend.build_wheel("dir") == "Backend called"
コード例 #12
0
ファイル: test_pep517.py プロジェクト: pradyunsg/pip
def test_disabling_pep517_invalid(shared_data: TestData, source: str,
                                  msg: str) -> None:
    """
    Test that we fail if we try to disable PEP 517 when it's not acceptable
    """
    src = shared_data.src.joinpath(source)
    req = InstallRequirement(None, None)
    req.source_dir = os.fspath(src)  # make req believe it has been unpacked

    # Simulate --no-use-pep517
    req.use_pep517 = False

    with pytest.raises(InstallationError) as e:
        req.load_pyproject_toml()

    err_msg = e.value.args[0]
    assert "Disabling PEP 517 processing is invalid" in err_msg
    assert msg in err_msg
コード例 #13
0
ファイル: test_pep517.py プロジェクト: hrnciar/pip
def test_backend_path_and_dep(tmpdir: Path, data: TestData) -> None:
    """Check we can call a requirement's backend successfully"""
    project_dir = make_project(
        tmpdir, backend="dummy_internal_backend", backend_path=["."]
    )
    (project_dir / "dummy_internal_backend.py").write_text(
        "from dummy_backend import build_wheel"
    )
    req = InstallRequirement(None, None)
    req.source_dir = project_dir  # make req believe it has been unpacked
    req.load_pyproject_toml()
    env = BuildEnvironment()
    finder = make_test_finder(find_links=[data.backends])
    env.install_requirements(finder, ["dummy_backend"], "normal", "Installing")

    assert hasattr(req.pep517_backend, "build_wheel")
    with env:
        assert req.pep517_backend is not None
        assert req.pep517_backend.build_wheel("dir") == "Backend called"
コード例 #14
0
ファイル: test_pep517.py プロジェクト: pradyunsg/pip
def test_pep517_parsing_checks_requirements(tmpdir: Path, spec: str) -> None:
    tmpdir.joinpath("pyproject.toml").write_text(
        dedent(f"""
            [build-system]
            requires = [{spec!r}]
            build-backend = "foo"
            """))
    req = InstallRequirement(None, None)
    req.source_dir = os.fspath(tmpdir)  # make req believe it has been unpacked

    with pytest.raises(InvalidPyProjectBuildRequires) as e:
        req.load_pyproject_toml()

    error = e.value

    assert str(req) in error.message
    assert error.context
    assert "build-system.requires" in error.context
    assert "contains an invalid requirement" in error.context
    assert error.hint_stmt
    assert "PEP 518" in error.hint_stmt
コード例 #15
-1
ファイル: test_pep517.py プロジェクト: akaihola/pip
def test_use_pep517(data, source, expected):
    """
    Test that we choose correctly between PEP 517 and legacy code paths
    """
    src = data.src.join(source)
    req = InstallRequirement(None, None, source_dir=src)
    req.load_pyproject_toml()
    assert req.use_pep517 is expected
コード例 #16
-1
ファイル: test_pep517.py プロジェクト: mkurnikov/pip
def test_backend(tmpdir, data):
    """Check we can call a requirement's backend successfully"""
    project_dir = make_project(tmpdir, backend="dummy_backend")
    req = InstallRequirement(None, None, source_dir=project_dir)
    req.load_pyproject_toml()
    env = BuildEnvironment()
    finder = PackageFinder([data.backends], [], session=PipSession())
    env.install_requirements(finder, ["dummy_backend"], 'normal', "Installing")
    conflicting, missing = env.check_requirements(["dummy_backend"])
    assert not conflicting and not missing
    assert hasattr(req.pep517_backend, 'build_wheel')
    with env:
        assert req.pep517_backend.build_wheel("dir") == "Backend called"
コード例 #17
-1
ファイル: test_pep517.py プロジェクト: akaihola/pip
def test_disabling_pep517_invalid(data, source, msg):
    """
    Test that we fail if we try to disable PEP 517 when it's not acceptable
    """
    src = data.src.join(source)
    req = InstallRequirement(None, None, source_dir=src)

    # Simulate --no-use-pep517
    req.use_pep517 = False

    with pytest.raises(InstallationError) as e:
        req.load_pyproject_toml()

    err_msg = e.value.args[0]
    assert "Disabling PEP 517 processing is invalid" in err_msg
    assert msg in err_msg