示例#1
0
def test_as_pep440_requirement_vcs():
    direct_url = DirectUrl(
        url="https:///g.c/u/p.git",
        info=VcsInfo(vcs="git",
                     commit_id="1b8c5bc61a86f377fea47b4276c8c8a5842d2220"))
    direct_url.validate()
    assert (direct_url_as_pep440_direct_reference(
        direct_url, "pkg") == "pkg @ git+https:///g.c/u/p.git"
            "@1b8c5bc61a86f377fea47b4276c8c8a5842d2220")
    direct_url.subdirectory = "subdir"
    direct_url.validate()
    assert (direct_url_as_pep440_direct_reference(
        direct_url, "pkg") == "pkg @ git+https:///g.c/u/p.git"
            "@1b8c5bc61a86f377fea47b4276c8c8a5842d2220#subdirectory=subdir")
示例#2
0
def test_as_pep440_requirement_dir() -> None:
    direct_url = DirectUrl(
        url="file:///home/user/project",
        info=DirInfo(editable=False),
    )
    direct_url.validate()
    assert (direct_url_as_pep440_direct_reference(
        direct_url, "pkg") == "pkg @ file:///home/user/project")
示例#3
0
def test_as_pep440_requirement_archive():
    direct_url = DirectUrl(
        url="file:///home/user/archive.tgz",
        info=ArchiveInfo(),
    )
    direct_url.validate()
    assert (direct_url_as_pep440_direct_reference(
        direct_url, "pkg") == "pkg @ file:///home/user/archive.tgz")
    direct_url.subdirectory = "subdir"
    direct_url.validate()
    assert (direct_url_as_pep440_direct_reference(
        direct_url,
        "pkg") == "pkg @ file:///home/user/archive.tgz#subdirectory=subdir")
    direct_url.info.hash = "sha1=1b8c5bc61a86f377fea47b4276c8c8a5842d2220"
    direct_url.validate()
    assert (
        direct_url_as_pep440_direct_reference(
            direct_url, "pkg") == "pkg @ file:///home/user/archive.tgz"
        "#sha1=1b8c5bc61a86f377fea47b4276c8c8a5842d2220&subdirectory=subdir")
示例#4
0
def test_as_pep440_requirement_editable_dir() -> None:
    # direct_url_as_pep440_direct_reference behaves the same
    # irrespective of the editable flag. It's the responsibility of
    # callers to render it as editable
    direct_url = DirectUrl(
        url="file:///home/user/project",
        info=DirInfo(editable=True),
    )
    direct_url.validate()
    assert (direct_url_as_pep440_direct_reference(
        direct_url, "pkg") == "pkg @ file:///home/user/project")
示例#5
0
    def from_dist(cls, dist: BaseDistribution) -> "FrozenRequirement":
        editable = dist.editable
        if editable:
            req, comments = _get_editable_info(dist)
        else:
            comments = []
            direct_url = dist.direct_url
            if direct_url:
                # if PEP 610 metadata is present, use it
                req = direct_url_as_pep440_direct_reference(direct_url, dist.raw_name)
            else:
                # name==version requirement
                req = _format_as_name_version(dist)

        return cls(dist.raw_name, req, editable, comments=comments)
示例#6
0
    def from_dist(cls, dist: BaseDistribution) -> "FrozenRequirement":
        # TODO `get_requirement_info` is taking care of editable requirements.
        # TODO This should be refactored when we will add detection of
        #      editable that provide .dist-info metadata.
        req, editable, comments = _get_editable_info(dist)
        if req is None and not editable:
            # if PEP 610 metadata is present, attempt to use it
            direct_url = dist.direct_url
            if direct_url:
                req = direct_url_as_pep440_direct_reference(
                    direct_url, dist.raw_name)
                comments = []
        if req is None:
            # name==version requirement
            req = _format_as_name_version(dist)

        return cls(dist.raw_name, req, editable, comments=comments)