WwangxiyuanUpdate unit test
deff37d3创建于 2023年6月7日历史提交
import unittest
from unittest import mock

from oos.common import pypi


def _mocked_requests_get(url):

    class MockResponse:
        def __init__(self, url):
            self.url = url
            self.status_code = 200

        @property
        def content(self):
            content = '{"url": "%s"}' % self.url
            return content.encode()

    return MockResponse(url)


class TestPypiAction(unittest.TestCase):

    @mock.patch('requests.get', side_effect=_mocked_requests_get)
    def test_get_json_from_pypi(self, mock_get):
        result = pypi.get_json_from_pypi('test_project', 'test_version')
        self.assertEqual(result['url'], 'https://pypi.org/pypi/test_project/test_version/json')
        self.assertEqual(len(mock_get.call_args_list), 1)

    def test_get_home_page(self):
        input_1 = {
            "info": {
                "project_urls": {
                    "Homepage": "https://fake_urls"
                }
            }
        }
        input_2 = {
            "info": {
                "project_urls": {},
                "project_url": "https://fake_url"
            }
        }
        res1 = pypi.get_home_page(input_1)
        res2 = pypi.get_home_page(input_2)
        self.assertEqual(res1, "https://fake_urls")
        self.assertEqual(res2, "https://fake_url")