Example #1
0
def test_latest_release():
    r1 = GithubRelease(tag_name='',
                       url='',
                       created_at='',
                       tarball_url='',
                       git_tag=GitTag(name='0.0.1', commit_sha='123'),
                       project=flexmock(GitProject),
                       raw_release=flexmock(title='0.0.1'))

    r2 = GithubRelease(tag_name='',
                       url='',
                       created_at='',
                       tarball_url='',
                       git_tag=GitTag(name='0.0.2', commit_sha='123'),
                       project=flexmock(GitProject),
                       raw_release=flexmock(title='0.0.2'))

    mocked_releases = [r1, r2]

    git = flexmock(Git)
    c = flexmock(configuration)
    c.project = flexmock(get_releases=lambda: mocked_releases)
    github = Github(c, git)

    obtained_release = github.latest_release()
    assert obtained_release == "0.0.2"

    mocked_releases = []
    c.project = flexmock(get_releases=lambda: mocked_releases)
    github = Github(c, git)
    obtained_release = github.latest_release()
    assert obtained_release == "0.0.0"
Example #2
0
def test_latest_release():
    mocked_releases = [
        Release(title='0.0.1',
                body='',
                tag_name='',
                url='',
                created_at='',
                tarball_url='',
                git_tag=GitTag(name='0.0.1', commit_sha='123')),
        Release(title='0.0.2',
                body='',
                tag_name='',
                url='',
                created_at='',
                tarball_url='',
                git_tag=GitTag(name='0.0.2', commit_sha='123'))
    ]

    git = flexmock(Git)
    c = flexmock(configuration)
    c.project = flexmock(get_releases=lambda: mocked_releases)
    github = Github(c, git)

    obtained_release = github.latest_release()
    assert obtained_release == '0.0.2'

    mocked_releases = []
    c.project = flexmock(get_releases=lambda: mocked_releases)
    github = Github(c, git)
    obtained_release = github.latest_release()
    assert obtained_release == '0.0.0'
Example #3
0
 def get_tags(self) -> List[GitTag]:
     response = self._call_project_api("git",
                                       "tags",
                                       params={"with_commits": True})
     return [
         GitTag(name=n, commit_sha=c) for n, c in response["tags"].items()
     ]
Example #4
0
 def get_tags_dict(self) -> Dict[str, GitTag]:
     response = self._call_project_api("git",
                                       "tags",
                                       params={"with_commits": True})
     return {
         n: GitTag(name=n, commit_sha=c)
         for n, c in response["tags"].items()
     }
Example #5
0
    def get_tag_from_tag_name(self, tag_name: str) -> Optional[GitTag]:
        """
        Get a tag based on a tag name.

        Args:
            tag_name: Name of the tag.

        Returns:
            GitTag associated with the given tag name or `None`.
        """
        all_tags = self.github_repo.get_tags()
        for tag in all_tags:
            if tag.name == tag_name:
                return GitTag(name=tag.name, commit_sha=tag.commit.sha)
        return None
Example #6
0
    def create(
        project: "ogr_pagure.PagureProject",
        tag: str,
        name: str,
        message: str,
        ref: Optional[str] = None,
    ) -> "Release":
        payload = {
            "tagname": tag,
            "commit_hash": ref,
        }
        if message:
            payload["message"] = message

        response = project._call_project_api("git",
                                             "tags",
                                             data=payload,
                                             method="POST")
        if not response["tag_created"]:
            raise PagureAPIException("Release has not been created")

        return PagureRelease(GitTag(tag, ref), project)
Example #7
0
 def get_tags(self) -> List["GitTag"]:
     return [
         GitTag(tag.name, tag.commit.sha)
         for tag in self.github_repo.get_tags()
     ]
Example #8
0
 def get_tag_from_tag_name(self, tag_name: str) -> Optional[GitTag]:
     all_tags = self.github_repo.get_tags()
     for tag in all_tags:
         if tag.name == tag_name:
             return GitTag(name=tag.name, commit_sha=tag.commit.sha)
     return None
Example #9
0
 def _git_tag_from_tag_name(self, tag_name: str) -> GitTag:
     git_tag = self.gitlab_repo.tags.get(tag_name)
     return GitTag(name=git_tag.name, commit_sha=git_tag.commit["id"])
Example #10
0
 def get_tags(self) -> List["GitTag"]:
     tags = self.gitlab_repo.tags.list()
     return [GitTag(tag.name, tag.commit["id"]) for tag in tags]