def test_pull_requests_with_no_last_tag(self):
        self.mock_util.mock_get_repo()
        # Mock the tag calls
        self._mock_current_tag_ref()
        self._mock_current_tag()
        self._mock_current_tag_commit()
        self._mock_last_tag_ref()
        self._mock_last_tag()
        self._mock_last_tag_commit()
        self._mock_list_pull_requests_multiple_in_range()

        generator = self._create_generator(self.current_tag)
        provider = GithubChangeNotesProvider(generator, self.current_tag)
        provider._get_last_tag = mock.Mock(return_value=None)
        provider_list = list(provider())
        pr_body_list = []
        pr_body_list = [
            "pull 1",
            "pull 2",
            "pull 3",
            "pull 4",
            "pull 5",
            "pull 7",
            "pull 8",
        ]
        self.assertEqual(len(provider_list), len(pr_body_list))
        for pr, pr_body in zip(provider_list, pr_body_list):
            self.assertEqual(pr.body, pr_body)
 def test_get_version_from_tag(self):
     self.mock_util.mock_get_repo()
     tag = "beta/1.0-Beta_1"
     generator = self._create_generator(tag)
     provider = GithubChangeNotesProvider(generator, tag)
     self.assertEqual("1.0-Beta_1", provider._get_version_from_tag(tag))
     with self.assertRaises(ValueError):
         provider._get_version_from_tag("bogus")
Exemplo n.º 3
0
    def test_one_pull_request_in_range(self):
        # Mock the tag calls
        self._mock_current_tag_ref()
        self._mock_current_tag()
        self._mock_current_tag_commit()
        self._mock_last_tag_ref()
        self._mock_last_tag()
        self._mock_last_tag_commit()
        self._mock_list_pull_requests_one_in_range()

        generator = self._create_generator(self.current_tag, self.last_tag)
        provider = GithubChangeNotesProvider(generator, self.current_tag,
                                             self.last_tag)
        provider_list = list(provider())
        pr_body_list = ['pull 1']
        self.assertEqual(len(provider_list), len(pr_body_list))
        for pr, pr_body in zip(provider_list, pr_body_list):
            self.assertEqual(pr['body'], pr_body)
Exemplo n.º 4
0
    def test_multiple_pull_requests_in_range(self):
        self.mock_util.mock_get_repo()
        # Mock the tag calls
        self._mock_current_tag_ref()
        self._mock_current_tag()
        self._mock_current_tag_commit()
        self._mock_last_tag_ref()
        self._mock_last_tag()
        self._mock_last_tag_commit()
        self._mock_list_pull_requests_multiple_in_range()

        generator = self._create_generator(self.current_tag, self.last_tag)
        provider = GithubChangeNotesProvider(generator, self.current_tag,
                                             self.last_tag)
        provider_list = list(provider())
        pr_body_list = []
        pr_body_list = ["pull 1", "pull 2", "pull 3", "pull 8"]
        self.assertEqual(len(provider_list), len(pr_body_list))
        for pr, pr_body in zip(provider_list, pr_body_list):
            self.assertEqual(pr.body, pr_body)
Exemplo n.º 5
0
    def test_current_tag_without_last(self):
        self._mock_current_tag_ref()
        current_tag = self._mock_current_tag()
        self._mock_current_tag_commit()
        self._mock_last_tag_ref()
        last_tag = self._mock_last_tag()
        self._mock_last_tag_commit()
        self._mock_list_tags_multiple()

        generator = self._create_generator(self.current_tag)
        provider = GithubChangeNotesProvider(generator, self.current_tag)

        self.assertEqual(
            provider.current_tag_info['ref'],
            self._get_expected_tag_ref(self.current_tag, self.current_tag_sha))
        self.assertEqual(provider.current_tag_info['tag'], current_tag)
        self.assertEqual(
            provider.last_tag_info['ref'],
            self._get_expected_tag_ref(self.last_tag, self.last_tag_sha))
        self.assertEqual(provider.last_tag_info['tag'], last_tag)
Exemplo n.º 6
0
    def test_multiple_pull_requests_in_range(self):
        # Mock the tag calls
        self._mock_current_tag_ref()
        self._mock_current_tag()
        self._mock_current_tag_commit()
        self._mock_last_tag_ref()
        self._mock_last_tag()
        self._mock_last_tag_commit()
        self._mock_list_pull_requests_multiple_in_range()

        generator = self._create_generator(self.current_tag, self.last_tag)
        provider = GithubChangeNotesProvider(generator, self.current_tag,
                                             self.last_tag)
        provider_list = list(provider())
        pr_body_list = []
        for n in range(3, 0, -1):
            pr_body_list.append('pull {}'.format(n))
        self.assertEqual(len(provider_list), len(pr_body_list))
        for pr, pr_body in zip(provider_list, pr_body_list):
            self.assertEqual(pr['body'], pr_body)
Exemplo n.º 7
0
    def test_no_pull_requests_in_repo(self):
        self.mock_util.mock_get_repo()
        # Mock the tag calls
        self._mock_current_tag_ref()
        self._mock_current_tag()
        self._mock_current_tag_commit()
        self._mock_last_tag_ref()
        self._mock_last_tag()
        self._mock_last_tag_commit()

        # Mock the list all pull requests call
        api_url = "{}/pulls".format(self.repo_api_url)
        responses.add(method=responses.GET,
                      url=api_url,
                      json=[],
                      content_type="application/json")

        generator = self._create_generator(self.current_tag, self.last_tag)
        provider = GithubChangeNotesProvider(generator, self.current_tag,
                                             self.last_tag)
        self.assertEqual(list(provider()), [])
Exemplo n.º 8
0
 def test_current_tag_is_lightweight(self):
     self.mock_util.mock_get_repo()
     tag = "release/lightweight"
     generator = self._create_generator(tag)
     provider = GithubChangeNotesProvider(generator, tag)
     api_url = "{}/git/refs/tags/{}".format(self.repo_api_url, tag)
     responses.add(
         method=responses.GET,
         url=api_url,
         json={
             "object": {
                 "type": "commit",
                 "url": "",
                 "sha": ""
             },
             "url": "",
             "ref": "tags/{}".format(tag),
         },
     )
     with self.assertRaises(GithubApiError):
         provider.current_tag_info
Exemplo n.º 9
0
    def test_no_pull_requests_in_repo(self):
        # Mock the tag calls
        self._mock_current_tag_ref()
        self._mock_current_tag()
        self._mock_current_tag_commit()
        self._mock_last_tag_ref()
        self._mock_last_tag()
        self._mock_last_tag_commit()

        # Mock the list all pull requests call
        api_url = '{}/pulls'.format(self.repo_api_url)
        expected_response_list_pull_requests = []
        responses.add(
            method=responses.GET,
            url=api_url,
            body=expected_response_list_pull_requests,
            content_type='application/json',
        )

        generator = self._create_generator(self.current_tag, self.last_tag)
        provider = GithubChangeNotesProvider(generator, self.current_tag,
                                             self.last_tag)
        self.assertEqual(list(provider()), [])
Exemplo n.º 10
0
 def _init_change_notes(self):
     return GithubChangeNotesProvider(self, self.current_tag, self.last_tag)
Exemplo n.º 11
0
 def test_invalid_current_tag(self):
     self._mock_invalid_tag()
     generator = self._create_generator(self.invalid_tag)
     provider = GithubChangeNotesProvider(generator, self.invalid_tag)
     with self.assertRaises(GithubApiNotFoundError):
         provider.current_tag_info