88import warnings
99
1010import mock
11+ import pytest
1112import requests
1213import six
1314
1718from SoftLayer import transports
1819
1920
21+ def get_xmlrpc_response ():
22+ response = requests .Response ()
23+ list_body = six .b ('''<?xml version="1.0" encoding="utf-8"?>
24+ <params>
25+ <param>
26+ <value>
27+ <array>
28+ <data/>
29+ </array>
30+ </value>
31+ </param>
32+ </params>''' )
33+ response .raw = io .BytesIO (list_body )
34+ response .headers ['SoftLayer-Total-Items' ] = 10
35+ response .status_code = 200
36+ return response
37+
38+
2039class TestXmlRpcAPICall (testing .TestCase ):
2140
2241 def set_up (self ):
2342 self .transport = transports .XmlRpcTransport (
2443 endpoint_url = 'http://something.com' ,
2544 )
26- self .response = requests .Response ()
27- list_body = six .b ('''<?xml version="1.0" encoding="utf-8"?>
28- <params>
29- <param>
30- <value>
31- <array>
32- <data/>
33- </array>
34- </value>
35- </param>
36- </params>''' )
37- self .response .raw = io .BytesIO (list_body )
38- self .response .headers ['SoftLayer-Total-Items' ] = 10
39- self .response .status_code = 200
45+ self .response = get_xmlrpc_response ()
4046
4147 @mock .patch ('requests.request' )
4248 def test_call (self , request ):
@@ -251,6 +257,55 @@ def test_request_exception(self, request):
251257 self .assertRaises (SoftLayer .TransportError , self .transport , req )
252258
253259
260+ @mock .patch ('requests.request' )
261+ @pytest .mark .parametrize (
262+ "transport_verify,request_verify,expected" ,
263+ [
264+ (True , True , True ),
265+ (True , False , False ),
266+ (True , None , True ),
267+
268+ (False , True , True ),
269+ (False , False , False ),
270+ (False , None , False ),
271+
272+ (None , True , True ),
273+ (None , False , False ),
274+ (None , None , True ),
275+ ]
276+ )
277+ def test_verify (request ,
278+ transport_verify ,
279+ request_verify ,
280+ expected ):
281+ request .return_value = get_xmlrpc_response ()
282+
283+ transport = transports .XmlRpcTransport (
284+ endpoint_url = 'http://something.com' ,
285+ )
286+
287+ req = transports .Request ()
288+ req .service = 'SoftLayer_Service'
289+ req .method = 'getObject'
290+
291+ if request_verify is not None :
292+ req .verify = request_verify
293+
294+ if transport_verify is not None :
295+ transport .verify = transport_verify
296+
297+ transport (req )
298+
299+ request .assert_called_with ('POST' ,
300+ 'http://something.com/SoftLayer_Service' ,
301+ data = mock .ANY ,
302+ headers = mock .ANY ,
303+ cert = mock .ANY ,
304+ proxies = mock .ANY ,
305+ timeout = mock .ANY ,
306+ verify = expected )
307+
308+
254309class TestRestAPICall (testing .TestCase ):
255310
256311 def set_up (self ):
@@ -261,6 +316,7 @@ def set_up(self):
261316 @mock .patch ('requests.request' )
262317 def test_basic (self , request ):
263318 request ().content = '[]'
319+ request ().text = '[]'
264320 request ().headers = requests .structures .CaseInsensitiveDict ({
265321 'SoftLayer-Total-Items' : '10' ,
266322 })
@@ -290,7 +346,7 @@ def test_error(self, request):
290346 e = requests .HTTPError ('error' )
291347 e .response = mock .MagicMock ()
292348 e .response .status_code = 404
293- e .response .content = '''{
349+ e .response .text = '''{
294350 "error": "description",
295351 "code": "Error Code"
296352 }'''
@@ -315,14 +371,15 @@ def test_proxy_without_protocol(self):
315371
316372 @mock .patch ('requests.request' )
317373 def test_valid_proxy (self , request ):
318- request ().content = '{}'
374+ request ().text = '{}'
319375 self .transport .proxy = 'http://localhost:3128'
320376
321377 req = transports .Request ()
322378 req .service = 'SoftLayer_Service'
323379 req .method = 'Resource'
324380
325381 self .transport (req )
382+
326383 request .assert_called_with (
327384 'GET' , 'http://something.com/SoftLayer_Service/Resource.json' ,
328385 proxies = {'https' : 'http://localhost:3128' ,
@@ -337,7 +394,7 @@ def test_valid_proxy(self, request):
337394
338395 @mock .patch ('requests.request' )
339396 def test_with_id (self , request ):
340- request ().content = '{}'
397+ request ().text = '{}'
341398
342399 req = transports .Request ()
343400 req .service = 'SoftLayer_Service'
@@ -361,7 +418,7 @@ def test_with_id(self, request):
361418
362419 @mock .patch ('requests.request' )
363420 def test_with_args (self , request ):
364- request ().content = '{}'
421+ request ().text = '{}'
365422
366423 req = transports .Request ()
367424 req .service = 'SoftLayer_Service'
@@ -385,7 +442,7 @@ def test_with_args(self, request):
385442
386443 @mock .patch ('requests.request' )
387444 def test_with_filter (self , request ):
388- request ().content = '{}'
445+ request ().text = '{}'
389446
390447 req = transports .Request ()
391448 req .service = 'SoftLayer_Service'
@@ -410,7 +467,7 @@ def test_with_filter(self, request):
410467
411468 @mock .patch ('requests.request' )
412469 def test_with_mask (self , request ):
413- request ().content = '{}'
470+ request ().text = '{}'
414471
415472 req = transports .Request ()
416473 req .service = 'SoftLayer_Service'
0 commit comments