@@ -44,6 +44,37 @@ def setUp(self):
4444 self .root = netapp_api .NaServer ('127.0.0.1' )
4545 super (NetAppApiServerTests , self ).setUp ()
4646
47+ @ddt .data (
48+ {'host' : '127.0.0.1' , 'ssl_cert_path' : None ,
49+ 'port' : 8080 , 'api_trace_pattern' : None
50+ },
51+ {'host' : '127.0.0.1' , 'ssl_cert_path' : '/test/fake_cert.pem' ,
52+ 'port' : 8080 , 'api_trace_pattern' : 'pattern'
53+ },
54+ )
55+ @ddt .unpack
56+ def test__init__ssl_verify (self , host , ssl_cert_path , port ,
57+ api_trace_pattern ):
58+
59+ with mock .patch (
60+ 'cinder.volume.drivers.netapp.utils.setup_api_trace_pattern'
61+ ) as mock_trace :
62+ server = netapp_api .NaServer (
63+ host = host ,
64+ ssl_cert_path = ssl_cert_path ,
65+ port = port ,
66+ api_trace_pattern = api_trace_pattern
67+ )
68+
69+ self .assertEqual (server ._host , host )
70+ self .assertEqual (server ._port , str (port ) if port else None )
71+ self .assertEqual (server ._refresh_conn , True )
72+
73+ if api_trace_pattern :
74+ mock_trace .assert_called_once_with (api_trace_pattern )
75+ else :
76+ mock_trace .assert_not_called ()
77+
4778 @ddt .data (None , 'ftp' )
4879 def test_set_transport_type_value_error (self , transport_type ):
4980 """Tests setting an invalid transport type"""
@@ -189,6 +220,31 @@ def test__build_opener_valid(self):
189220
190221 self .assertTrue (mock_invoke .called )
191222
223+ @mock .patch ('ssl._create_unverified_context' )
224+ @mock .patch ('six.moves.urllib.request.build_opener' )
225+ def test_build_opener_with_ssl_verification_disabled (
226+ self , mock_build_opener , mock_unverified_context ):
227+ self .root ._ssl_verify = False
228+ mock_unverified_context .return_value = 'mock_unverified_context'
229+
230+ self .root ._build_opener ()
231+
232+ mock_unverified_context .assert_called_once ()
233+ mock_build_opener .assert_called_once ()
234+
235+ @mock .patch ('urllib.request.HTTPPasswordMgrWithDefaultRealm' )
236+ @mock .patch ('six.moves.urllib.request.build_opener' )
237+ def test_build_opener_with_basic_auth (self , mock_build_opener ,
238+ mock_password_mgr ):
239+ self .root ._username = 'user'
240+ self .root ._password = 'pass'
241+ mock_password_mgr .return_value = mock .Mock ()
242+
243+ self .root ._build_opener ()
244+
245+ mock_password_mgr .assert_called_once ()
246+ mock_build_opener .assert_called_once ()
247+
192248 @ddt .data (None , zapi_fakes .FAKE_XML_STR )
193249 def test_send_http_request_value_error (self , na_element ):
194250 """Tests whether invalid NaElement parameter causes error"""
0 commit comments