Skip to content

Commit 8bebfcc

Browse files
transport testing to 100
1 parent 3d413be commit 8bebfcc

File tree

2 files changed

+87
-4
lines changed

2 files changed

+87
-4
lines changed

SoftLayer/transports.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -339,13 +339,11 @@ def __call__(self, call):
339339
module_path = 'SoftLayer.fixtures.%s' % call.service
340340
module = importlib.import_module(module_path)
341341
except ImportError:
342-
raise NotImplementedError('%s fixture is not implemented'
343-
% call.service)
342+
raise NotImplementedError('%s fixture is not implemented' % call.service)
344343
try:
345344
return getattr(module, call.method)
346345
except AttributeError:
347-
raise NotImplementedError('%s::%s fixture is not implemented'
348-
% (call.service, call.method))
346+
raise NotImplementedError('%s::%s fixture is not implemented' % (call.service, call.method))
349347

350348

351349
def _proxies_dict(proxy):

tests/transport_tests.py

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -510,6 +510,32 @@ def test_with_mask(self, request):
510510
proxies=None,
511511
timeout=None)
512512

513+
@mock.patch('requests.request')
514+
def test_with_limit_offset(self, request):
515+
request().text = '{}'
516+
517+
req = transports.Request()
518+
req.service = 'SoftLayer_Service'
519+
req.method = 'getObject'
520+
req.identifier = 2
521+
req.limit = 10
522+
req.offset = 5
523+
524+
resp = self.transport(req)
525+
526+
self.assertEqual(resp, {})
527+
request.assert_called_with(
528+
'GET',
529+
'http://something.com/SoftLayer_Service/2/getObject.json',
530+
headers=mock.ANY,
531+
auth=None,
532+
data=None,
533+
params={'limit': 10, 'offset': 5},
534+
verify=True,
535+
cert=None,
536+
proxies=None,
537+
timeout=None)
538+
513539
@mock.patch('requests.request')
514540
def test_unknown_error(self, request):
515541
e = requests.RequestException('error')
@@ -523,3 +549,62 @@ def test_unknown_error(self, request):
523549
req.method = 'getObject'
524550

525551
self.assertRaises(SoftLayer.TransportError, self.transport, req)
552+
553+
554+
@mock.patch('requests.request')
555+
@mock.patch('requests.auth.HTTPBasicAuth')
556+
def test_with_special_auth(self, auth, request):
557+
request().text = '{}'
558+
559+
user = 'asdf'
560+
password = 'zxcv'
561+
req = transports.Request()
562+
req.service = 'SoftLayer_Service'
563+
req.method = 'getObject'
564+
req.identifier = 2
565+
req.transport_user = user
566+
req.transport_password = password
567+
568+
569+
resp = self.transport(req)
570+
auth.assert_called_with(user, password)
571+
request.assert_called_with(
572+
'GET',
573+
'http://something.com/SoftLayer_Service/2/getObject.json',
574+
headers=mock.ANY,
575+
auth=mock.ANY,
576+
data=None,
577+
params={},
578+
verify=True,
579+
cert=None,
580+
proxies=None,
581+
timeout=None)
582+
583+
584+
class TestFixtureTransport(testing.TestCase):
585+
586+
def set_up(self):
587+
self.transport = transports.FixtureTransport()
588+
589+
def test_basic(self):
590+
591+
req = transports.Request()
592+
req.service = 'SoftLayer_Account'
593+
req.method = 'getObject'
594+
resp = self.transport(req)
595+
596+
self.assertEqual(resp['cdnAccounts'][0]['accountId'], 1234)
597+
598+
def test_no_module(self):
599+
600+
req = transports.Request()
601+
req.service = 'Doesnt_Exist'
602+
req.method = 'getObject'
603+
self.assertRaises(NotImplementedError, self.transport, req)
604+
605+
def test_no_method(self):
606+
607+
req = transports.Request()
608+
req.service = 'SoftLayer_Account'
609+
req.method = 'getObjectzzzz'
610+
self.assertRaises(NotImplementedError, self.transport, req)

0 commit comments

Comments
 (0)