コード例 #1
0
ファイル: test_api.py プロジェクト: bill-mahoney/test
 def test__get_next_endpoint_Should_ReturnExpected_When_CalledWithNextEndpoint(
         self, *patches):
     client = GitHubAPI('api.github.com', bearer_token='bearer-token')
     link_header = '<https://api.github.com/organizations/27781926/repos?page=2>; rel="prev", <https://api.github.com/organizations/27781926/repos?page=4>; rel="next", <https://api.github.com/organizations/27781926/repos?page=4>; rel="last", <https://api.github.com/organizations/27781926/repos?page=1>; rel="first"'
     result = client.get_next_endpoint(link_header)
     expected_result = '/organizations/27781926/repos?page=4'
     self.assertEqual(result, expected_result)
コード例 #2
0
ファイル: test_api.py プロジェクト: bill-mahoney/test
 def test__get_version_tags_Should_Return_When_NoLatestTagVersion(
         self, get_latest_version_patch, filter_version_tags_patch,
         *patches):
     get_latest_version_patch.return_value = (None, None)
     client = GitHubAPI('api.github.com', bearer_token='bearer-token')
     client.get_version_tags(repo='org1/repo1', branch='master')
     filter_version_tags_patch.assert_not_called()
コード例 #3
0
ファイル: test_api.py プロジェクト: bill-mahoney/test
 def test__remove_version_tags_Should_Return_When_NoTags(
         self, get_version_tags_patch, ratelimit_request_patch, *patches):
     get_version_tags_patch.return_value = None
     client = GitHubAPI('api.github.com', bearer_token='bearer-token')
     client.remove_version_tags(repo='org1/repo1',
                                branch='master',
                                noop=False)
     ratelimit_request_patch.assert_not_called()
コード例 #4
0
ファイル: test_api.py プロジェクト: bill-mahoney/test
 def test__get_version_tags_Should_CallAndReturnExpected_When_Called(
         self, get_latest_version_patch, filter_version_tags_patch,
         *patches):
     get_latest_version_patch.return_value = Version('1.2.3-dev.1'), 'sha0'
     client = GitHubAPI('api.github.com', bearer_token='bearer-token')
     result = client.get_version_tags(repo='org1/repo1', branch='master')
     expected_result = (filter_version_tags_patch.return_value,
                        Version('1.2.3-dev.1'), 'sha0')
     self.assertEqual(result, expected_result)
コード例 #5
0
ファイル: test_api.py プロジェクト: bill-mahoney/test
 def test__read_Should_CallExpected_When_Called(self, read_all_patch,
                                                match_keys_patch, *patches):
     client = GitHubAPI('api.github.com', bearer_token='bearer-token')
     endpoint = '/repos/edgexfoundry/cd-management/milestones'
     attributes = ['key1', 'key2']
     result = client.read(endpoint, attributes=attributes)
     read_all_patch.assert_called_once_with(endpoint)
     match_keys_patch.assert_called_once_with(read_all_patch.return_value,
                                              attributes)
     self.assertEqual(result, match_keys_patch.return_value)
コード例 #6
0
ファイル: test_api.py プロジェクト: bill-mahoney/test
 def test__remove_version_tags_Should_CallExpected_When_Called(
         self, get_version_tags_patch, ratelimit_request_patch, *patches):
     get_version_tags_patch.return_value = ([
         ('tag1', 'sha1'), ('tag2', 'sha2')
     ], '-latest-version-', '-latest-version-sha-')
     client = GitHubAPI('api.github.com', bearer_token='bearer-token')
     client.remove_version_tags(repo='org1/repo1',
                                branch='master',
                                noop=True)
     ratelimit_request_patch.assert_called_with(
         client.delete, '/repos/org1/repo1/git/refs/tags/tag2', noop=True)
コード例 #7
0
ファイル: test_api.py プロジェクト: bill-mahoney/test
 def test__ratelimit_request_Should_CallAndReturnExpected_When_NoRawResponse(
         self, *patches):
     client = GitHubAPI('api.github.com', bearer_token='bearer-token')
     function_mock = Mock()
     result = client.ratelimit_request(function_mock,
                                       'one',
                                       2,
                                       True,
                                       k1='v1',
                                       k2='v2')
     function_mock.assert_called_once_with('one', 2, True, k1='v1', k2='v2')
     self.assertEqual(result, function_mock.return_value)
コード例 #8
0
ファイル: test_api.py プロジェクト: bill-mahoney/test
 def test__read_page_Should_ReturnExpected_When_NoEndpoint(
         self, ratelimit_request_patch, get_next_endpoint_patch, *patches):
     response_mock1 = Mock()
     response_mock1.json.return_value = ['page1', 'page2']
     ratelimit_request_patch.side_effect = [response_mock1]
     get_next_endpoint_patch.side_effect = [None]
     client = GitHubAPI('api.github.com', bearer_token='bearer-token')
     result = client.read_page('endpoint')
     self.assertEqual(next(result), 'page1')
     self.assertEqual(next(result), 'page2')
     with self.assertRaises(StopIteration):
         next(result)
コード例 #9
0
ファイル: test_api.py プロジェクト: bill-mahoney/test
 def test__read_all_Should_ReturnExpected_When_GetReturnsDict(
         self, ratelimit_request_patch, get_next_endpoint_patch, *patches):
     response_mock1 = Mock()
     response_mock1.json.return_value = {'key1': 'value1'}
     response_mock2 = Mock()
     response_mock2.json.return_value = {'key2': 'value2'}
     ratelimit_request_patch.side_effect = [response_mock1, response_mock2]
     get_next_endpoint_patch.side_effect = [{
         'Link': 'link-header-value'
     }, {}]
     client = GitHubAPI('api.github.com', bearer_token='bearer-token')
     result = client.read_all(
         '/repos/edgexfoundry/cd-management/milestones')
     expected_result = [{'key1': 'value1'}, {'key2': 'value2'}]
     self.assertEqual(result, expected_result)
コード例 #10
0
ファイル: test_api.py プロジェクト: bill-mahoney/test
 def test__get_latest_version_Should_ReturnExpected_When_NoTagFound(
         self, read_page_patch, lookup_tag_patch, get_version_patch,
         *patches):
     read_page_patch.return_value = [{
         'sha': '-sha1-'
     }, {
         'sha': '-sha2-'
     }, {
         'sha': '-sha3-'
     }]
     lookup_tag_patch.side_effect = [None, None, None]
     client = GitHubAPI('api.github.com', bearer_token='bearer-token')
     tags = ['tag1', 'tag2']
     result = client.get_latest_version(repo='soda480/repo1', tags=tags)
     self.assertEqual(result, (None, None))
コード例 #11
0
ファイル: test_api.py プロジェクト: bill-mahoney/test
 def test__get_version_tags_report_Should_ReturnExpected_When_Called(
         self, get_version_tags_patch, generate_version_report, *patches):
     get_version_tags_patch.side_effect = [
         ('-tags-', '-latest-version-', '-latest-version-sha-'),
         None,
         ('-tags-', '-latest-version-', '-latest-version-sha-'),
     ]
     generate_version_report.side_effect = [{'repo1': {}}, {'repo3': {}}]
     client = GitHubAPI('api.github.com', bearer_token='bearer-token')
     repos = ['repo1', 'repo2', 'repo3']
     expression = '<=1.1.1'
     result = client.get_version_tags_report(repos=repos,
                                             expression=expression)
     expected_result = {'repo1': {}, 'repo2': {}, 'repo3': {}}
     self.assertEqual(result, expected_result)
コード例 #12
0
ファイル: test_api.py プロジェクト: bill-mahoney/test
 def test__get_repos_Should_CallAndReturnExpected_When_UserRegexAttributes(
         self, read_all_patch, match_repos_patch, *patches):
     client = GitHubAPI('api.github.com', bearer_token='bearer-token')
     result = client.get_repos(user='******',
                               include=r'^test_repo.*$',
                               archived=False,
                               disabled=False)
     read_all_patch.assert_called_once_with('/users/soda480/repos')
     match_repos_patch.assert_called_once_with(
         repos=read_all_patch.return_value,
         owner='soda480',
         include='^test_repo.*$',
         exclude=None,
         archived=False,
         disabled=False)
     self.assertEqual(result, match_repos_patch.return_value)
コード例 #13
0
ファイル: test_api.py プロジェクト: bill-mahoney/test
 def test__get_repos_Should_CallAndReturnExpected_When_OrganizationExcludeAttributes(
         self, read_all_patch, match_repos_patch, *patches):
     client = GitHubAPI('api.github.com', bearer_token='bearer-token')
     result = client.get_repos(organization='org1',
                               exclude=['repo1', 'repo2'],
                               archived=False,
                               disabled=False)
     read_all_patch.assert_called_once_with('/orgs/org1/repos')
     match_repos_patch.assert_called_once_with(
         repos=read_all_patch.return_value,
         owner='org1',
         include=None,
         exclude=['repo1', 'repo2'],
         archived=False,
         disabled=False)
     self.assertEqual(result, match_repos_patch.return_value)
コード例 #14
0
ファイル: test_api.py プロジェクト: bill-mahoney/test
 def test__get_latest_version_Should_CallAndReturnExpected_When_Called(
         self, read_page_patch, lookup_tag_patch, get_version_patch,
         *patches):
     read_page_patch.return_value = [{
         'sha': '-sha1-'
     }, {
         'sha': '-sha2-'
     }, {
         'sha': '-sha3-'
     }]
     client = GitHubAPI('api.github.com', bearer_token='bearer-token')
     tags = ['tag1', 'tag2']
     result = client.get_latest_version(repo='soda480/repo1', tags=tags)
     self.assertEqual(result, (get_version_patch.return_value, '-sha1-'))
     read_page_patch.assert_called_once_with(
         '/repos/soda480/repo1/commits?sha=master')
     lookup_tag_patch.assert_called_with(tags=tags, sha='-sha1-')
コード例 #15
0
ファイル: test_api.py プロジェクト: bill-mahoney/test
 def test__remove_version_tags_Should_LogErrorAndContinue_When_Exception(
         self, get_version_tags_patch, ratelimit_request_patch,
         logger_patch, *patches):
     get_version_tags_patch.return_value = ([
         ('tag1', 'sha1'), ('tag2', 'sha2')
     ], '-latest-version-', '-latest-version-sha-')
     ratelimit_request_patch.side_effect = [
         Exception('request error'), None
     ]
     client = GitHubAPI('api.github.com', bearer_token='bearer-token')
     client.remove_version_tags(repo='org1/repo1',
                                branch='master',
                                noop=True)
     ratelimit_request_patch.assert_called_with(
         client.delete, '/repos/org1/repo1/git/refs/tags/tag2', noop=True)
     logger_patch.error.assert_called_with(
         'error occurred removing tag tag1 from repo org1/repo1: request error'
     )
コード例 #16
0
ファイル: test_api.py プロジェクト: bill-mahoney/test
 def test__init__Should_RaiseValueError_When_NoBearerToken(self, *patches):
     with self.assertRaises(ValueError):
         GitHubAPI('api.github.com')
コード例 #17
0
ファイル: test_api.py プロジェクト: bill-mahoney/test
 def test__get_headers_Should_SetAcceptHeader_When_Called(self, *patches):
     client = GitHubAPI('api.github.com', bearer_token='bearer-token')
     result = client.get_headers()
     self.assertEqual(result['Accept'], 'application/vnd.github.v3+json')
コード例 #18
0
ファイル: test_api.py プロジェクト: bill-mahoney/test
 def test__get_next_endpoint_Should_ReturnNone_When_NoLinkHeader(
         self, *patches):
     client = GitHubAPI('api.github.com', bearer_token='bearer-token')
     self.assertIsNone(client.get_next_endpoint(None))
コード例 #19
0
ファイル: test_api.py プロジェクト: bill-mahoney/test
 def test__get_version_tags_Should_Return_When_NoTags(
         self, read_all_patch, get_latest_version_patch, *patches):
     read_all_patch.return_value = []
     client = GitHubAPI('api.github.com', bearer_token='bearer-token')
     client.get_version_tags(repo='org1/repo1', branch='master')
     get_latest_version_patch.assert_not_called()
コード例 #20
0
ファイル: test_api.py プロジェクト: bill-mahoney/test
 def test__get_next_endpoint_Should_ReturnNone_When_NoNextEndpoint(
         self, *patches):
     client = GitHubAPI('api.github.com', bearer_token='bearer-token')
     link_header = '<https://api.github.com/organizations/27781926/repos?page=3>; rel="prev", <https://api.github.com/organizations/27781926/repos?page=1>; rel="first"'
     result = client.get_next_endpoint(link_header)
     self.assertIsNone(result)
コード例 #21
0
ファイル: test_api.py プロジェクト: bill-mahoney/test
 def test__get_response_Should_CallExpected_When_Called(
         self, log_ratelimit_patch, *patches):
     client = GitHubAPI('api.github.com', bearer_token='bearer-token')
     response_mock = Mock(headers={'key': 'value'})
     client.get_response(response_mock)
     log_ratelimit_patch.assert_called_once_with(response_mock.headers)