コード例 #1
0
ファイル: test_info.py プロジェクト: jekinen/poetry
def test_info_setup_complex_pep517_error(mocker, demo_setup_complex):
    mocker.patch(
        "poetry.utils.env.VirtualEnv.run",
        autospec=True,
        side_effect=EnvCommandError(CalledProcessError(1, "mock", output="mock")),
    )

    with pytest.raises(PackageInfoError):
        PackageInfo.from_directory(demo_setup_complex)
コード例 #2
0
def test_info_setup_complex_disable_build(mocker, demo_setup_complex):
    spy = mocker.spy(VirtualEnv, "run")
    info = PackageInfo.from_directory(demo_setup_complex, disable_build=True)
    assert spy.call_count == 0
    assert info.name == "demo"
    assert info.version == "0.1.0"
    assert info.requires_dist is None
コード例 #3
0
ファイル: test_info.py プロジェクト: xantocoder/poetry-1
def test_info_no_setup_pkg_info_no_deps():
    info = PackageInfo.from_directory(
        FIXTURE_DIR_INSPECTIONS / "demo_no_setup_pkg_info_no_deps", disable_build=True,
    )
    assert info.name == "demo"
    assert info.version == "0.1.0"
    assert info.requires_dist is None
コード例 #4
0
def test_info_setup_missing_mandatory_should_trigger_pep517(
        mocker, source_dir, missing):
    setup = "from setuptools import setup; "
    setup += "setup("
    setup += 'name="demo", ' if missing != "name" else ""
    setup += 'version="0.1.0", ' if missing != "version" else ""
    setup += 'install_requires=["package"]' if missing != "install_requires" else ""
    setup += ")"

    setup_py = source_dir / "setup.py"
    setup_py.write_text(decode(setup))

    spy = mocker.spy(VirtualEnv, "run")
    try:
        PackageInfo.from_directory(source_dir)
    except PackageInfoError:
        assert spy.call_count == 3
    else:
        assert spy.call_count == 1
コード例 #5
0
    def get_package_from_directory(cls,
                                   directory: Path,
                                   name: Optional[str] = None) -> "Package":
        package = PackageInfo.from_directory(path=directory).to_package(
            root_dir=directory)

        if name and name != package.name:
            # For now, the dependency's name must match the actual package's name
            raise RuntimeError(
                f"The dependency name for {name} does not match the actual package's name: {package.name}"
            )

        return package
コード例 #6
0
    def get_package_from_directory(
            cls,
            directory,
            name=None):  # type: (Path, Optional[str]) -> Package
        package = PackageInfo.from_directory(path=directory).to_package(
            root_dir=directory)

        if name and name != package.name:
            # For now, the dependency's name must match the actual package's name
            raise RuntimeError(
                "The dependency name for {} does not match the actual package's name: {}"
                .format(name, package.name))

        return package
コード例 #7
0
def test_info_prefer_poetry_config_over_egg_info():
    info = PackageInfo.from_directory(FIXTURE_DIR_INSPECTIONS /
                                      "demo_with_obsolete_egg_info")
    demo_check_info(info)
コード例 #8
0
def test_info_setup_complex_pep517_legacy(demo_setup_complex_pep517_legacy):
    info = PackageInfo.from_directory(demo_setup_complex_pep517_legacy)
    demo_check_info(info, requires_dist={"package"})
コード例 #9
0
def test_info_setup_complex(demo_setup_complex):
    info = PackageInfo.from_directory(demo_setup_complex)
    demo_check_info(info, requires_dist={"package"})
コード例 #10
0
def test_info_setup_cfg(mocker, demo_setup_cfg):
    spy = mocker.spy(VirtualEnv, "run")
    info = PackageInfo.from_directory(demo_setup_cfg)
    assert spy.call_count == 0
    demo_check_info(info, requires_dist={"package"})
コード例 #11
0
def test_info_from_poetry_directory():
    info = PackageInfo.from_directory(FIXTURE_DIR_INSPECTIONS / "demo",
                                      disable_build=True)
    demo_check_info(info)
コード例 #12
0
def test_info_setup_simple_py2(mocker, demo_setup):
    spy = mocker.spy(VirtualEnv, "run")
    info = PackageInfo.from_directory(demo_setup, allow_build=True)
    assert spy.call_count == 2
    demo_check_info(info, requires_dist={"package"})
コード例 #13
0
 def get_package_from_directory(cls, directory: Path) -> Package:
     return PackageInfo.from_directory(path=directory).to_package(
         root_dir=directory)
コード例 #14
0
ファイル: test_info.py プロジェクト: timgates42/poetry
def test_info_setup_simple(mocker: MockerFixture, demo_setup: Path):
    spy = mocker.spy(VirtualEnv, "run")
    info = PackageInfo.from_directory(demo_setup)
    assert spy.call_count == 0
    demo_check_info(info, requires_dist={"package"})