Files
any-auto-register/tests/test_luckmail_proxy_chain.py

50 lines
1.5 KiB
Python

import unittest
from unittest import mock
from core.luckmail.client import LuckMailClient
from core.luckmail.http_client import LuckMailHttpClient
class LuckMailProxyChainTests(unittest.TestCase):
@mock.patch("core.luckmail.client.LuckMailHttpClient")
def test_luckmail_client_forwards_proxy_to_http_client(self, mock_http_cls):
LuckMailClient(
base_url="https://example.com",
api_key="k",
proxy_url="socks5://127.0.0.1:7890",
)
mock_http_cls.assert_called_once()
self.assertEqual(
mock_http_cls.call_args.kwargs.get("proxy_url"),
"socks5://127.0.0.1:7890",
)
@mock.patch("core.luckmail.http_client.curl_requests.Session")
def test_http_client_sync_session_uses_normalized_proxy(self, mock_session_cls):
session_obj = mock.Mock()
mock_session_cls.return_value = session_obj
client = LuckMailHttpClient(
base_url="https://example.com",
api_key="k",
proxy_url="socks5://127.0.0.1:7890",
)
_ = client._get_sync_session()
mock_session_cls.assert_called_once()
self.assertEqual(
mock_session_cls.call_args.kwargs.get("proxy"),
"socks5h://127.0.0.1:7890",
)
self.assertEqual(
session_obj.proxies,
{
"http": "socks5h://127.0.0.1:7890",
"https": "socks5h://127.0.0.1:7890",
},
)
if __name__ == "__main__":
unittest.main()