import unittest
from unittest import mock
from oos.common import gitee
def _mocked_requests_get(url, headers=None):
class MockResponse:
def __init__(self, url, headers):
self.url = url
self.headers = headers
self.status_code = 200
@property
def content(self):
content = '{"url": "%s", "headers": "%s"}' % (self.url, self.headers)
return content.encode()
def json(self):
return {
"login": "test_name",
"email": "test_email@123.com",
}
return MockResponse(url, headers)
def _mocked_get_gitee_project_tree(owner, project, branch, access_token):
return {
"tree": [
{"path": "123.tar.gz" },
]
}
class TestGiteeAction(unittest.TestCase):
"""TODO: update get_gitee_project_version UT"""
@mock.patch('requests.get', side_effect=_mocked_requests_get)
def test_get_gitee_project_tree(self, mock_get):
result = gitee.get_gitee_project_tree('test_owner', 'test_project', 'test_branch')
self.assertEqual(result['url'], 'https://gitee.com/api/v5/repos/test_owner/test_project/git/trees/test_branch')
self.assertEqual(result['headers'], "{'Content-Type': 'application/json;charset=UTF-8'}")
self.assertEqual(len(mock_get.call_args_list), 1)
@mock.patch('oos.common.gitee.get_gitee_project_tree', side_effect=_mocked_get_gitee_project_tree)
def test_get_gitee_project_version(self, mock_get_gitee_project_tree):
result = gitee.get_gitee_project_version('test_owner', 'test_project', 'test_branch')
self.assertEqual(result, '123')
@mock.patch('requests.get', side_effect=_mocked_requests_get)
def test_has_branch(self, mock_get):
result = gitee.has_branch('test_owner', 'test_project', 'test_branch')
self.assertTrue(result)
@mock.patch('requests.get', side_effect=_mocked_requests_get)
def test_get_user_info(self, mock_get):
result = gitee.get_user_info('test_token')
self.assertEqual(result, ('test_name', 'test_email@123.com'))