15
15
import unittest
16
16
17
17
from .ws_client import get_websocket_url
18
+ from .ws_client import websocket_proxycare
19
+ from kubernetes .client .configuration import Configuration
18
20
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
19
33
20
34
class WSClientTest (unittest .TestCase ):
21
35
@@ -32,6 +46,21 @@ def test_websocket_client(self):
32
46
]:
33
47
self .assertEqual (get_websocket_url (url ), ws_url )
34
48
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 )
35
64
36
65
if __name__ == '__main__' :
37
66
unittest .main ()
0 commit comments