Ejemplo n.º 1
0
  def testGetLatestVersion(self):
    """Tests the GetLatestVersion functions."""
    download_helper = pypi.PyPIDownloadHelper(self._DOWNLOAD_URL)

    latest_version = download_helper.GetLatestVersion(self._PROJECT_NAME, None)

    self.assertEqual(latest_version, self._PROJECT_VERSION)
Ejemplo n.º 2
0
    def testGetProjectIdentifier(self):
        """Tests the GetProjectIdentifier functions."""
        download_helper = pypi.PyPIDownloadHelper(self._DOWNLOAD_URL)

        project_identifier = download_helper.GetProjectIdentifier()

        expected_project_identifier = 'org.pypi.{0:s}'.format(
            self._PROJECT_NAME)

        self.assertEqual(project_identifier, expected_project_identifier)
Ejemplo n.º 3
0
    def testGetDownloadURL(self):
        """Tests the GetDownloadURL functions."""
        download_helper = pypi.PyPIDownloadHelper(self._DOWNLOAD_URL)

        expected_download_url_regexp = re.compile(
            r'https://files.pythonhosted.org/packages/'
            r'[\da-f/]+{0:s}-\d{{8}}.tar.gz'.format(self._PROJECT_NAME))

        download_url = download_helper.GetDownloadURL(self._PROJECT_NAME,
                                                      self._PROJECT_VERSION)

        # pylint: disable=deprecated-method
        self.assertRegexpMatches(download_url, expected_download_url_regexp)
Ejemplo n.º 4
0
    def NewDownloadHelper(cls, project_definition):
        """Creates a new download helper.

    Args:
      project_definition (ProjectDefinition): project definition.

    Returns:
      DownloadHelper: download helper.

    Raises:
      ValueError: if no corresponding helper could be found for the download
          URL.
    """
        download_url = project_definition.download_url

        if download_url.endswith('/'):
            download_url = download_url[:-1]

        # Unify http:// and https:// URLs for the download helper check.
        if download_url.startswith('https://'):
            download_url = 'http://{0:s}'.format(download_url[8:])

        # Remove URL arguments.
        download_url, _, _ = download_url.partition('?')

        if download_url.startswith('http://pypi.org/project/'):
            return pypi.PyPIDownloadHelper(
                download_url, source_name=project_definition.pypi_source_name)

        if (download_url.startswith('http://sourceforge.net/projects/')
                and download_url.endswith('/files')):
            return sourceforge.SourceForgeDownloadHelper(download_url)

        if (download_url.startswith('http://github.com/')
                and download_url.endswith('/releases')):
            return github.GitHubReleasesDownloadHelper(download_url)

        raise ValueError('Unsupported download URL: {0:s}.'.format(
            project_definition.download_url))