@@ -257,6 +257,15 @@ def test_request_exception(self, request):
257257 self .assertRaises (SoftLayer .TransportError , self .transport , req )
258258
259259
260+ def test_print_reproduceable (self ):
261+ req = transports .Request ()
262+ req .url = "https://test.com"
263+ req .payload = "testing"
264+ req .transport_headers = {"test-headers" : 'aaaa' }
265+ output_text = self .transport .print_reproduceable (req )
266+ self .assertIn ("https://test.com" , output_text )
267+
268+
260269@mock .patch ('SoftLayer.transports.requests.Session.request' )
261270@pytest .mark .parametrize (
262271 "transport_verify,request_verify,expected" ,
@@ -529,7 +538,7 @@ def test_with_limit_offset(self, request):
529538 headers = mock .ANY ,
530539 auth = None ,
531540 data = None ,
532- params = {'limit ' : 10 , 'offset' : 5 },
541+ params = {'resultLimit ' : '5,10' },
533542 verify = True ,
534543 cert = None ,
535544 proxies = None ,
@@ -578,6 +587,13 @@ def test_with_special_auth(self, auth, request):
578587 proxies = None ,
579588 timeout = None )
580589
590+ def test_print_reproduceable (self ):
591+ req = transports .Request ()
592+ req .url = "https://test.com"
593+ req .payload = "testing"
594+ req .transport_headers = {"test-headers" : 'aaaa' }
595+ output_text = self .transport .print_reproduceable (req )
596+ self .assertIn ("https://test.com" , output_text )
581597
582598class TestFixtureTransport (testing .TestCase ):
583599
@@ -602,3 +618,104 @@ def test_no_method(self):
602618 req .service = 'SoftLayer_Account'
603619 req .method = 'getObjectzzzz'
604620 self .assertRaises (NotImplementedError , self .transport , req )
621+
622+ class TestTimingTransport (testing .TestCase ):
623+
624+
625+ def set_up (self ):
626+ fixture_transport = transports .FixtureTransport ()
627+ self .transport = transports .TimingTransport (fixture_transport )
628+
629+ def test_call (self ):
630+ req = transports .Request ()
631+ req .service = 'SoftLayer_Account'
632+ req .method = 'getObject'
633+ resp = self .transport (req )
634+ self .assertEqual (resp ['accountId' ], 1234 )
635+
636+ def test_get_last_calls (self ):
637+ req = transports .Request ()
638+ req .service = 'SoftLayer_Account'
639+ req .method = 'getObject'
640+ resp = self .transport (req )
641+ self .assertEqual (resp ['accountId' ], 1234 )
642+ calls = self .transport .get_last_calls ()
643+ self .assertEqual (calls [0 ][0 ].service , 'SoftLayer_Account' )
644+
645+ def test_print_reproduceable (self ):
646+ req = transports .Request ()
647+ req .service = 'SoftLayer_Account'
648+ req .method = 'getObject'
649+ output_text = self .transport .print_reproduceable (req )
650+ self .assertEqual ('SoftLayer_Account' , output_text )
651+
652+ class TestDebugTransport (testing .TestCase ):
653+
654+
655+ def set_up (self ):
656+ fixture_transport = transports .FixtureTransport ()
657+ self .transport = transports .DebugTransport (fixture_transport )
658+ req = transports .Request ()
659+ req .service = 'SoftLayer_Account'
660+ req .method = 'getObject'
661+ self .req = req
662+
663+ def test_call (self ):
664+
665+ resp = self .transport (self .req )
666+ self .assertEqual (resp ['accountId' ], 1234 )
667+
668+ def test_get_last_calls (self ):
669+
670+ resp = self .transport (self .req )
671+ self .assertEqual (resp ['accountId' ], 1234 )
672+ calls = self .transport .get_last_calls ()
673+ self .assertEqual (calls [0 ].service , 'SoftLayer_Account' )
674+
675+ def test_print_reproduceable (self ):
676+ req = transports .Request ()
677+ req .service = 'SoftLayer_Account'
678+ req .method = 'getObject'
679+ output_text = self .transport .print_reproduceable (self .req )
680+ self .assertEqual ('SoftLayer_Account' , output_text )
681+
682+ def test_print_reproduceable_post (self ):
683+ req = transports .Request ()
684+ req .url = "https://test.com"
685+ req .payload = "testing"
686+ req .transport_headers = {"test-headers" : 'aaaa' }
687+ req .args = 'createObject'
688+
689+ rest_transport = transports .RestTransport ()
690+ transport = transports .DebugTransport (rest_transport )
691+
692+ output_text = transport .print_reproduceable (req )
693+
694+ self .assertIn ("https://test.com" , output_text )
695+ self .assertIn ("-X POST" , output_text )
696+
697+
698+ @mock .patch ('SoftLayer.transports.requests.Session.request' )
699+ def test_error (self , request ):
700+ # Test JSON Error
701+ e = requests .HTTPError ('error' )
702+ e .response = mock .MagicMock ()
703+ e .response .status_code = 404
704+ e .response .text = '''{
705+ "error": "description",
706+ "code": "Error Code"
707+ }'''
708+ request ().raise_for_status .side_effect = e
709+
710+ req = transports .Request ()
711+ req .service = 'SoftLayer_Service'
712+ req .method = 'Resource'
713+ rest_transport = transports .RestTransport ()
714+ transport = transports .DebugTransport (rest_transport )
715+ self .assertRaises (SoftLayer .SoftLayerAPIError , transport , req )
716+ calls = transport .get_last_calls ()
717+ self .assertEqual (404 , calls [0 ].exception .faultCode )
718+
719+
720+
721+
0 commit comments