Exemplo n.º 1
0
 def test_project_url_for_no_exts_in_index(self):
     name = 'myext'
     with IndexPatch(
         {}), self.assertRaises(NoExtensionCandidatesError) as err:
         resolve_project_url_from_index(name)
     self.assertEqual(str(err.exception),
                      "No extension found with name '{}'".format(name))
Exemplo n.º 2
0
 def test_project_url_for_ext_resolved(self):
     name = 'myext'
     index_data = {
         name: [mock_ext('myext-0.0.1-py2.py3-none-any.whl', '0.0.1')]
     }
     with IndexPatch(index_data):
         self.assertEqual(
             resolve_project_url_from_index(name),
             index_data[name][0]['metadata']['extensions']['python.details']
             ['project_urls']['Home'])
Exemplo n.º 3
0
def _get_extension_repo_url(ext_name, raw=False):
    _NEW_ISSUES_STR = '/issues/new'
    try:
        project_url = resolve_project_url_from_index(extension_name=ext_name)
        if _is_valid_github_project_url(url=project_url):
            raw_url = project_url.lower().strip('/') + _NEW_ISSUES_STR
            # Prettify the url for cli extensions repo
            if not raw and raw_url == _RAW_EXTENSIONS_ISSUES_URL:
                return _EXTENSIONS_ISSUES_URL
            return raw_url
    except (CLIError, NoExtensionCandidatesError) as ex:
        # since this is going to feedback let it fall back to the generic extensions repo
        logger.debug(ex)
    return _RAW_EXTENSIONS_ISSUES_URL if raw else _EXTENSIONS_ISSUES_URL