예제 #1
0
def test_dist_get_direct_url_valid_metadata():
    dist = MagicMock()
    dist.has_metadata.return_value = True
    dist.get_metadata.return_value = (
        '{"url": "https://e.c/p.tgz", "archive_info": {}}')
    direct_url = dist_get_direct_url(dist)
    dist.get_metadata.assert_called_with(DIRECT_URL_METADATA_NAME)
    assert direct_url.url == "https://e.c/p.tgz"
    assert isinstance(direct_url.info, ArchiveInfo)
예제 #2
0
 def from_dist(cls, dist):
     # type: (Distribution) -> 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_requirement_info(dist)
     if req is None and not editable:
         # if PEP 610 metadata is present, attempt to use it
         direct_url = dist_get_direct_url(dist)
         if direct_url:
             req = direct_url_as_pep440_direct_reference(
                 direct_url, dist.project_name
             )
             comments = []
예제 #3
0
def test_dist_get_direct_url_bad_metadata():
    dist = MagicMock()
    dist.has_metadata.return_value = True
    dist.get_metadata.return_value = "{}"  # invalid direct_url.json
    assert dist_get_direct_url(dist) is None
    dist.get_metadata.assert_called_with(DIRECT_URL_METADATA_NAME)
예제 #4
0
def test_dist_get_direct_url_no_metadata():
    dist = MagicMock()
    dist.has_metadata.return_value = False
    assert dist_get_direct_url(dist) is None
    dist.has_metadata.assert_called()