1+ import unittest
2+ from unittest .mock import patch , MagicMock
3+ import detectlanguage
4+
5+
6+ class TestProxyConfiguration (unittest .TestCase ):
7+ def setUp (self ):
8+ detectlanguage .configuration .proxies = None
9+
10+ def test_proxy_configuration (self ):
11+ """Test proxy configuration"""
12+ detectlanguage .configuration .proxies = {'https' : 'https://proxy.example.com:8080' }
13+ self .assertEqual (detectlanguage .configuration .proxies , {'https' : 'https://proxy.example.com:8080' })
14+
15+ @patch ('requests.get' )
16+ def test_client_uses_proxy (self , mock_get ):
17+ """Test that client uses configured proxy"""
18+ detectlanguage .configuration .proxies = {'https' : 'https://proxy.example.com:8080' }
19+
20+ mock_response = MagicMock ()
21+ mock_response .json .return_value = {'test' : 'data' }
22+ mock_response .raise_for_status .return_value = None
23+ mock_get .return_value = mock_response
24+
25+ detectlanguage .account_status ()
26+
27+ mock_get .assert_called_once ()
28+ self .assertEqual (mock_get .call_args [1 ]['proxies' ], {'https' : 'https://proxy.example.com:8080' })
29+
30+ @patch ('requests.get' )
31+ def test_client_no_proxy_when_disabled (self , mock_get ):
32+ """Test that client doesn't use proxy when disabled"""
33+ detectlanguage .configuration .proxies = None
34+
35+ mock_response = MagicMock ()
36+ mock_response .json .return_value = {'test' : 'data' }
37+ mock_response .raise_for_status .return_value = None
38+ mock_get .return_value = mock_response
39+
40+ detectlanguage .account_status ()
41+
42+ mock_get .assert_called_once ()
43+ self .assertIsNone (mock_get .call_args [1 ]['proxies' ])
44+
45+
46+ if __name__ == '__main__' :
47+ unittest .main ()
0 commit comments