Skip to content

Commit e0f7fc3

Browse files
fixed unit tests for SOAP transport
1 parent 87f84d0 commit e0f7fc3

6 files changed

Lines changed: 64 additions & 151 deletions

File tree

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,47 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://api.service.softlayer.com/soap/v3.1/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Header><ns1:totalItems><amount>109</amount></ns1:totalItems></SOAP-ENV:Header><SOAP-ENV:Body><ns1:getAllObjectsResponse><getAllObjectsReturn SOAP-ENC:arrayType="ns1:SoftLayer_Product_Package[5]" xsi:type="ns1:SoftLayer_Product_PackageArray"><item xsi:type="ns1:SoftLayer_Product_Package"><id xsi:type="xsd:int">56</id><keyName xsi:type="xsd:string">2U_QUAD_PROCESSOR_MULTI_CORE_NEHALEM_EX</keyName><name xsi:type="xsd:string">Quad Processor Multi Core Nehalem EX</name><type xsi:type="ns1:SoftLayer_Product_Package_Type" id="ref1"><id xsi:type="xsd:int">2</id><keyName xsi:type="xsd:string">BARE_METAL_CPU</keyName></type></item><item xsi:type="ns1:SoftLayer_Product_Package"><id xsi:type="xsd:int">126</id><keyName xsi:type="xsd:string">SINGLE_XEON_1200_SANDY_BRIDGE_HASWELL</keyName><name xsi:type="xsd:string">Single Xeon 1200 Series (Sandy Bridge / Haswell)</name><type href="#ref1"/></item><item xsi:type="ns1:SoftLayer_Product_Package"><id xsi:type="xsd:int">142</id><keyName xsi:type="xsd:string">SINGLE_XEON_2000_SANDY_BRIDGE</keyName><name xsi:type="xsd:string">Single Xeon 2000 Series (Sandy Bridge)</name><type href="#ref1"/></item><item xsi:type="ns1:SoftLayer_Product_Package"><id xsi:type="xsd:int">143</id><keyName xsi:type="xsd:string">DUAL_XEON_2000_SANDY_BRIDGE</keyName><name xsi:type="xsd:string">Dual Xeon 2000 Series (Sandy Bridge)</name><type href="#ref1"/></item><item xsi:type="ns1:SoftLayer_Product_Package"><id xsi:type="xsd:int">144</id><keyName xsi:type="xsd:string">3U_GPU</keyName><name xsi:type="xsd:string">Specialty Server: GPU</name><type href="#ref1"/></item></getAllObjectsReturn></ns1:getAllObjectsResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
2+
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://api.service.softlayer.com/soap/v3.1/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
3+
<SOAP-ENV:Header>
4+
<ns1:totalItems>
5+
<amount>109</amount>
6+
</ns1:totalItems>
7+
</SOAP-ENV:Header>
8+
<SOAP-ENV:Body>
9+
<ns1:getAllObjectsResponse>
10+
<getAllObjectsReturn SOAP-ENC:arrayType="ns1:SoftLayer_Product_Package[5]" xsi:type="ns1:SoftLayer_Product_PackageArray">
11+
<item xsi:type="ns1:SoftLayer_Product_Package">
12+
<id xsi:type="xsd:int">56</id>
13+
<keyName xsi:type="xsd:string">2U_QUAD_PROCESSOR_MULTI_CORE_NEHALEM_EX</keyName>
14+
<name xsi:type="xsd:string">Quad Processor Multi Core Nehalem EX</name>
15+
<type id="ref1" xsi:type="ns1:SoftLayer_Product_Package_Type">
16+
<id xsi:type="xsd:int">2</id>
17+
<keyName xsi:type="xsd:string">BARE_METAL_CPU</keyName>
18+
</type>
19+
</item>
20+
<item xsi:type="ns1:SoftLayer_Product_Package">
21+
<id xsi:type="xsd:int">126</id>
22+
<keyName xsi:type="xsd:string">SINGLE_XEON_1200_SANDY_BRIDGE_HASWELL</keyName>
23+
<name xsi:type="xsd:string">Single Xeon 1200 Series (Sandy Bridge / Haswell)</name>
24+
<type href="#ref1"/>
25+
</item>
26+
<item xsi:type="ns1:SoftLayer_Product_Package">
27+
<id xsi:type="xsd:int">142</id>
28+
<keyName xsi:type="xsd:string">SINGLE_XEON_2000_SANDY_BRIDGE</keyName>
29+
<name xsi:type="xsd:string">Single Xeon 2000 Series (Sandy Bridge)</name>
30+
<type href="#ref1"/>
31+
</item>
32+
<item xsi:type="ns1:SoftLayer_Product_Package">
33+
<id xsi:type="xsd:int">143</id>
34+
<keyName xsi:type="xsd:string">DUAL_XEON_2000_SANDY_BRIDGE</keyName>
35+
<name xsi:type="xsd:string">Dual Xeon 2000 Series (Sandy Bridge)</name>
36+
<type href="#ref1"/>
37+
</item>
38+
<item xsi:type="ns1:SoftLayer_Product_Package">
39+
<id xsi:type="xsd:int">144</id>
40+
<keyName xsi:type="xsd:string">3U_GPU</keyName>
41+
<name xsi:type="xsd:string">Specialty Server: GPU</name>
42+
<type href="#ref1"/>
43+
</item>
44+
</getAllObjectsReturn>
45+
</ns1:getAllObjectsResponse>
46+
</SOAP-ENV:Body>
47+
</SOAP-ENV:Envelope>

SoftLayer/transports/soap.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
:license: MIT, see LICENSE for more details.
77
"""
88
import logging
9+
10+
# Try to import zeep, make sure its softlayer_zeep, error otherwise
911
from zeep import Client
1012
from zeep import Settings
1113
from zeep import Transport

setup.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,7 @@
3939
'requests >= 2.20.0',
4040
'prompt_toolkit >= 2',
4141
'pygments >= 2.0.0',
42-
'urllib3 >= 1.24',
43-
'zeep'
42+
'urllib3 >= 1.24'
4443
],
4544
keywords=['softlayer', 'cloud', 'slcli'],
4645
classifiers=[

tests/transport_tests.py

Lines changed: 0 additions & 133 deletions
This file was deleted.

tests/transports/debug_tests.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def test_print_reproduceable_post(self):
5656
self.assertIn("https://test.com", output_text)
5757
self.assertIn("-X POST", output_text)
5858

59-
@mock.patch('SoftLayer.transports.requests.Session.request')
59+
@mock.patch('SoftLayer.transports.rest.requests.Session.request')
6060
def test_error(self, request):
6161
# Test JSON Error
6262
e = requests.HTTPError('error')

tests/transports/rest_tests.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ def set_up(self):
2121
endpoint_url='http://something9999999999999999999999.com',
2222
)
2323

24-
@mock.patch('SoftLayer.transports.requests.Session.request')
24+
@mock.patch('SoftLayer.transports.rest.requests.Session.request')
2525
def test_basic(self, request):
2626
request().content = '[]'
2727
request().text = '[]'
@@ -48,7 +48,7 @@ def test_basic(self, request):
4848
proxies=None,
4949
timeout=None)
5050

51-
@mock.patch('SoftLayer.transports.requests.Session.request')
51+
@mock.patch('SoftLayer.transports.rest.requests.Session.request')
5252
def test_http_and_json_error(self, request):
5353
# Test JSON Error
5454
e = requests.HTTPError('error')
@@ -65,7 +65,7 @@ def test_http_and_json_error(self, request):
6565
req.method = 'Resource'
6666
self.assertRaises(SoftLayer.SoftLayerAPIError, self.transport, req)
6767

68-
@mock.patch('SoftLayer.transports.requests.Session.request')
68+
@mock.patch('SoftLayer.transports.rest.requests.Session.request')
6969
def test_http_and_empty_error(self, request):
7070
# Test JSON Error
7171
e = requests.HTTPError('error')
@@ -79,7 +79,7 @@ def test_http_and_empty_error(self, request):
7979
req.method = 'Resource'
8080
self.assertRaises(SoftLayer.SoftLayerAPIError, self.transport, req)
8181

82-
@mock.patch('SoftLayer.transports.requests.Session.request')
82+
@mock.patch('SoftLayer.transports.rest.requests.Session.request')
8383
def test_empty_error(self, request):
8484
# Test empty response error.
8585
request().text = ''
@@ -89,7 +89,7 @@ def test_empty_error(self, request):
8989
req.method = 'Resource'
9090
self.assertRaises(SoftLayer.SoftLayerAPIError, self.transport, req)
9191

92-
@mock.patch('SoftLayer.transports.requests.Session.request')
92+
@mock.patch('SoftLayer.transports.rest.requests.Session.request')
9393
def test_json_error(self, request):
9494
# Test non-json response error.
9595
request().text = 'Not JSON'
@@ -109,7 +109,7 @@ def test_proxy_without_protocol(self):
109109
except AssertionError:
110110
warnings.warn("AssertionError raised instead of a SoftLayer.TransportError error")
111111

112-
@mock.patch('SoftLayer.transports.requests.Session.request')
112+
@mock.patch('SoftLayer.transports.rest.requests.Session.request')
113113
def test_valid_proxy(self, request):
114114
request().text = '{}'
115115
self.transport.proxy = 'http://localhost:3128'
@@ -132,7 +132,7 @@ def test_valid_proxy(self, request):
132132
timeout=mock.ANY,
133133
headers=mock.ANY)
134134

135-
@mock.patch('SoftLayer.transports.requests.Session.request')
135+
@mock.patch('SoftLayer.transports.rest.requests.Session.request')
136136
def test_with_id(self, request):
137137
request().text = '{}'
138138

@@ -156,7 +156,7 @@ def test_with_id(self, request):
156156
proxies=None,
157157
timeout=None)
158158

159-
@mock.patch('SoftLayer.transports.requests.Session.request')
159+
@mock.patch('SoftLayer.transports.rest.requests.Session.request')
160160
def test_with_args(self, request):
161161
request().text = '{}'
162162

@@ -180,7 +180,7 @@ def test_with_args(self, request):
180180
proxies=None,
181181
timeout=None)
182182

183-
@mock.patch('SoftLayer.transports.requests.Session.request')
183+
@mock.patch('SoftLayer.transports.rest.requests.Session.request')
184184
def test_with_args_bytes(self, request):
185185
request().text = '{}'
186186

@@ -204,7 +204,7 @@ def test_with_args_bytes(self, request):
204204
proxies=None,
205205
timeout=None)
206206

207-
@mock.patch('SoftLayer.transports.requests.Session.request')
207+
@mock.patch('SoftLayer.transports.rest.requests.Session.request')
208208
def test_with_filter(self, request):
209209
request().text = '{}'
210210

@@ -229,7 +229,7 @@ def test_with_filter(self, request):
229229
proxies=None,
230230
timeout=None)
231231

232-
@mock.patch('SoftLayer.transports.requests.Session.request')
232+
@mock.patch('SoftLayer.transports.rest.requests.Session.request')
233233
def test_with_mask(self, request):
234234
request().text = '{}'
235235

@@ -274,7 +274,7 @@ def test_with_mask(self, request):
274274
proxies=None,
275275
timeout=None)
276276

277-
@mock.patch('SoftLayer.transports.requests.Session.request')
277+
@mock.patch('SoftLayer.transports.rest.requests.Session.request')
278278
def test_with_limit_offset(self, request):
279279
request().text = '{}'
280280

@@ -300,7 +300,7 @@ def test_with_limit_offset(self, request):
300300
proxies=None,
301301
timeout=None)
302302

303-
@mock.patch('SoftLayer.transports.requests.Session.request')
303+
@mock.patch('SoftLayer.transports.rest.requests.Session.request')
304304
def test_unknown_error(self, request):
305305
e = requests.RequestException('error')
306306
e.response = mock.MagicMock()
@@ -314,7 +314,7 @@ def test_unknown_error(self, request):
314314

315315
self.assertRaises(SoftLayer.TransportError, self.transport, req)
316316

317-
@mock.patch('SoftLayer.transports.requests.Session.request')
317+
@mock.patch('SoftLayer.transports.rest.requests.Session.request')
318318
@mock.patch('requests.auth.HTTPBasicAuth')
319319
def test_with_special_auth(self, auth, request):
320320
request().text = '{}'

0 commit comments

Comments
 (0)