Пример #1
0
 def __init__(self,
              package: Package,
              format_desc: Optional[Callable[..., Any]] = None):
     super().__init__(package)
     self._meta: dict = utils.get_package_meta(str(self.package),
                                               self.package.pretty_specs)
     self.format_desc = format_desc or (lambda n: n)
Пример #2
0
def test_get_package_meta(mocker):
    """should get package meta"""
    mock_req = mocker.patch.object(utils.helpers, 'requests')
    mock_data = {
        "releases": {
            "0.0.0": [{
                "url": "early-version.tar.gz"
            }],
            "0.1.0": [{
                "url": "do-not-return-me",
            }, {
                "url": "return-me.tar.gz"
            }],
        }
    }
    mock_req.get.return_value.json.return_value = mock_data
    result = utils.get_package_meta("foobar")
    assert result == {"url": "return-me.tar.gz"}
    mock_req.get.assert_called_once_with("https://pypi.org/pypi/foobar/json")
    result = utils.get_package_meta("foobar", spec="==0.0.0")
    assert result == {"url": "early-version.tar.gz"}
Пример #3
0
def test_get_package_meta(mocker, requests_mock):
    """should get package meta"""
    mock_data = {
        "releases": {
            "0.0.0": [{
                "url": "early-version.tar.gz"
            }],
            "0.1.0": [{
                "url": "do-not-return-me",
            }, {
                "url": "return-me.tar.gz"
            }],
        }
    }
    requests_mock.get("https://pypi.org/pypi/foobar/json", json=mock_data)
    result = utils.get_package_meta("foobar",
                                    "https://pypi.org/pypi/foobar/json")
    assert result == {"url": "return-me.tar.gz"}
    result = utils.get_package_meta("foobar==0.0.0",
                                    "https://pypi.org/pypi/foobar/json")
    assert result == {"url": "early-version.tar.gz"}
Пример #4
0
 def __init__(self,
              package: Package,
              format_desc: Optional[Callable[..., Any]] = None):
     super().__init__(package)
     try:
         utils.ensure_valid_url(self.repo_url)
     except Exception:
         raise RequirementNotFound(f"{self.repo_url} is not a valid url!",
                                   package=self.package)
     else:
         self._meta: dict = utils.get_package_meta(str(self.package),
                                                   self.repo_url)
         self.format_desc = format_desc or (lambda n: n)
Пример #5
0
 def load_packages(self):
     """Retrieves and stubs project requirements"""
     pkg_keys = set(self.packages.keys())
     pkg_cache = self._get_cache('pkg_loaded')
     new_pkgs = pkg_keys.copy()
     if pkg_cache:
         new_pkgs = new_pkgs - set(pkg_cache)
     pkgs = [(name, s)
             for name, s in self.packages.items() if name in new_pkgs]
     if pkgs and not self._loaded:
         self.log.title("Fetching Requirements")
     for name, spec in pkgs:
         meta = utils.get_package_meta(name, spec=spec)
         tar_url = meta['url']
         self._fetch_package(tar_url)
     self.update_all()
     self._set_cache('pkg_loaded', list(pkg_keys))