1515import unittest
1616
1717from .ws_client import get_websocket_url
18+ from .ws_client import websocket_proxycare
19+ from kubernetes .client .configuration import Configuration
1820
21+ try :
22+ import urllib3
23+ urllib3 .disable_warnings ()
24+ except ImportError :
25+ pass
26+
27+ def dictval (dict , key , default = None ):
28+ try :
29+ val = dict [key ]
30+ except KeyError :
31+ val = default
32+ return val
1933
2034class WSClientTest (unittest .TestCase ):
2135
@@ -32,6 +46,21 @@ def test_websocket_client(self):
3246 ]:
3347 self .assertEqual (get_websocket_url (url ), ws_url )
3448
49+ def test_websocket_proxycare (self ):
50+ for proxy , idpass , expect_host , expect_port , expect_auth in [
51+ ( None , None , None , None , None ),
52+ ( 'http://proxy.example.com:8080/' , None , 'proxy.example.com' , 8080 , None ),
53+ ( 'http://proxy.example.com:8080/' , 'user:pass' , 'proxy.example.com' , 8080 , ('user' ,'pass' ))
54+ ]:
55+ config = Configuration ()
56+ if proxy is not None :
57+ setattr (config , 'proxy' , proxy )
58+ if idpass is not None :
59+ setattr (config , 'proxy_headers' , urllib3 .util .make_headers (proxy_basic_auth = idpass ))
60+ connect_opt = websocket_proxycare ( {}, config , None , None )
61+ self .assertEqual ( dictval (connect_opt ,'http_proxy_host' ), expect_host )
62+ self .assertEqual ( dictval (connect_opt ,'http_proxy_port' ), expect_port )
63+ self .assertEqual ( dictval (connect_opt ,'http_proxy_auth' ), expect_auth )
3564
3665if __name__ == '__main__' :
3766 unittest .main ()
0 commit comments