Skip to content

Commit 8616d3e

Browse files
fixed tox style issues
1 parent 7da2e4d commit 8616d3e

13 files changed

Lines changed: 58 additions & 119 deletions

File tree

SoftLayer/transports/__init__.py

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,16 @@
55
66
:license: MIT, see LICENSE for more details.
77
"""
8+
# Required imports to not break existing code.
89

910

10-
import requests
11-
12-
13-
# Required imports to not break existing code.
14-
from .rest import RestTransport
15-
from .xmlrpc import XmlRpcTransport
11+
from .debug import DebugTransport
1612
from .fixture import FixtureTransport
13+
from .rest import RestTransport
1714
from .timing import TimingTransport
18-
from .debug import DebugTransport
19-
2015
from .transport import Request
2116
from .transport import SoftLayerListResult as SoftLayerListResult
22-
17+
from .xmlrpc import XmlRpcTransport
2318

2419
# transports.Request does have a lot of instance attributes. :(
2520
# pylint: disable=too-many-instance-attributes, no-self-use

SoftLayer/transports/fixture.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ def __call__(self, call):
2626
message = '{}::{} fixture is not implemented'.format(call.service, call.method)
2727
raise NotImplementedError(message) from ex
2828

29-
def print_reproduceable(self, call):
29+
@staticmethod
30+
def print_reproduceable(call):
3031
"""Not Implemented"""
3132
return call.service

SoftLayer/transports/rest.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,8 @@ def __call__(self, request):
157157
except requests.RequestException as ex:
158158
raise exceptions.TransportError(0, str(ex))
159159

160-
def print_reproduceable(self, request):
160+
@staticmethod
161+
def print_reproduceable(request):
161162
"""Prints out the minimal python code to reproduce a specific request
162163
163164
The will also automatically replace the API key so its not accidently exposed.

SoftLayer/transports/soap.py

Lines changed: 42 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -6,31 +6,22 @@
66
:license: MIT, see LICENSE for more details.
77
"""
88
import logging
9-
import re
10-
from string import Template
11-
from zeep import Client, Settings, Transport, xsd
12-
from zeep.helpers import serialize_object
9+
from zeep import Client
10+
from zeep import Settings
11+
from zeep import Transport
12+
from zeep import xsd
13+
1314
from zeep.cache import SqliteCache
15+
from zeep.helpers import serialize_object
1416
from zeep.plugins import HistoryPlugin
15-
from zeep.wsdl.messages.multiref import process_multiref
16-
17-
18-
import requests
1917

2018
from SoftLayer import consts
2119
from SoftLayer import exceptions
2220

23-
from .transport import _format_object_mask
24-
from .transport import _proxies_dict
25-
from .transport import ComplexEncoder
26-
from .transport import get_session
27-
from .transport import SoftLayerListResult
28-
29-
from pprint import pprint as pp
30-
3121

22+
# pylint: disable=too-many-instance-attributes
3223
class SoapTransport(object):
33-
"""XML-RPC transport."""
24+
"""SoapTransport."""
3425

3526
def __init__(self, endpoint_url=None, timeout=None, proxy=None, user_agent=None, verify=True):
3627

@@ -44,7 +35,7 @@ def __init__(self, endpoint_url=None, timeout=None, proxy=None, user_agent=None,
4435
self.verify = verify
4536
self._client = None
4637
self.history = HistoryPlugin()
47-
self.soapNS = "http://api.service.softlayer.com/soap/v3.1/"
38+
self.soapns = "http://api.service.softlayer.com/soap/v3.1/"
4839

4940
def __call__(self, request):
5041
"""Makes a SoftLayer API call against the SOAP endpoint.
@@ -59,31 +50,31 @@ def __call__(self, request):
5950

6051
# print(client.wsdl.dump())
6152
# print("=============== WSDL ==============")
62-
# MUST define headers like this because otherwise the objectMask header doesn't work
53+
54+
# Must define headers like this because otherwise the objectMask header doesn't work
6355
# because it isn't sent in with a namespace.
64-
xsdUserAuth = xsd.Element(
65-
f"{{{self.soapNS}}}authenticate",
56+
xsd_userauth = xsd.Element(
57+
f"{{{self.soapns}}}authenticate",
6658
xsd.ComplexType([
67-
xsd.Element(f'{{{self.soapNS}}}username', xsd.String()),
68-
xsd.Element(f'{{{self.soapNS}}}apiKey', xsd.String())
59+
xsd.Element(f'{{{self.soapns}}}username', xsd.String()),
60+
xsd.Element(f'{{{self.soapns}}}apiKey', xsd.String())
6961
])
7062
)
71-
factory = client.type_factory(f"{self.soapNS}")
72-
theMask = client.get_type(f"{{{self.soapNS}}}SoftLayer_ObjectMask")
73-
xsdMask = xsd.Element(
74-
f"{{{self.soapNS}}}SoftLayer_ObjectMask",
75-
factory['SoftLayer_ObjectMask']
63+
# factory = client.type_factory(f"{self.soapns}")
64+
the_mask = client.get_type(f"{{{self.soapns}}}SoftLayer_ObjectMask")
65+
xsd_mask = xsd.Element(
66+
f"{{{self.soapns}}}SoftLayer_ObjectMask", the_mask
7667
)
7768

7869
# Object Filter
79-
filterType = client.get_type(f"{{{self.soapNS}}}{request.service}ObjectFilter")
80-
xsdFilter = xsd.Element(
81-
f"{{{self.soapNS}}}{request.service}ObjectFilter", filterType
70+
filter_type = client.get_type(f"{{{self.soapns}}}{request.service}ObjectFilter")
71+
xsd_filter = xsd.Element(
72+
f"{{{self.soapns}}}{request.service}ObjectFilter", filter_type
8273
)
8374

8475
# Result Limit
85-
xsdResultLimit = xsd.Element(
86-
f"{{{self.soapNS}}}resultLimit",
76+
xsd_resultlimit = xsd.Element(
77+
f"{{{self.soapns}}}resultLimit",
8778
xsd.ComplexType([
8879
xsd.Element('limit', xsd.String()),
8980
xsd.Element('offset', xsd.String()),
@@ -92,54 +83,47 @@ def __call__(self, request):
9283

9384
# Might one day want to support unauthenticated requests, but for now assume user auth.
9485
headers = [
95-
xsdUserAuth(username=request.transport_user, apiKey=request.transport_password),
86+
xsd_userauth(username=request.transport_user, apiKey=request.transport_password),
9687
]
9788

9889
if request.limit:
99-
headers.append(xsdResultLimit(limit=request.limit, offset=request.offset))
90+
headers.append(xsd_resultlimit(limit=request.limit, offset=request.offset))
10091
if request.mask:
101-
headers.append(xsdMask(mask=request.mask))
92+
headers.append(xsd_mask(mask=request.mask))
10293
if request.filter:
10394
# The ** here forces python to treat this dict as properties
104-
headers.append(xsdFilter(**request.filter))
95+
headers.append(xsd_filter(**request.filter))
10596

10697
if request.identifier:
107-
initParam = f"{request.service}InitParameters"
108-
initParamType = client.get_type(f"{{{self.soapNS}}}{initParam}")
109-
xsdInitParam = xsd.Element(
110-
f"{{{self.soapNS}}}{initParam}", initParamType
98+
init_param = f"{request.service}init_parameters"
99+
init_paramtype = client.get_type(f"{{{self.soapns}}}{init_param}")
100+
xsdinit_param = xsd.Element(
101+
f"{{{self.soapns}}}{init_param}", init_paramtype
111102
)
112103
# Might want to check if its an id or globalIdentifier at some point, for now only id.
113-
headers.append(xsdInitParam(id=request.identifier))
104+
headers.append(xsdinit_param(id=request.identifier))
114105

115-
# TODO Add params... maybe
106+
# NEXT Add params... maybe
116107
try:
117108
method = getattr(client.service, request.method)
118109
except AttributeError as ex:
119-
message = f"{request.service}::{request.method}() does not exist in {self.soapNS}{request.service}?wsdl"
110+
message = f"{request.service}::{request.method}() does not exist in {self.soapns}{request.service}?wsdl"
120111
raise exceptions.TransportError(404, message) from ex
121112

122113
result = method(_soapheaders=headers)
123-
# result = client.service.getObject(_soapheaders=headers)
124-
125-
# process_multiref(result['body']['getAllObjectsReturn'])
126114

127-
# print("^^^ RESULT ^^^^^^^")
128-
129-
# TODO GET A WAY TO FIND TOTAL ITEMS
130-
# print(result['header']['totalItems']['amount'])
131-
# print(" ^^ ITEMS ^^^ ")
115+
# NEXT GET A WAY TO FIND TOTAL ITEMS
132116

133117
try:
134-
methodReturn = f"{request.method}Return"
118+
method_return = f"{request.method}Return"
135119
serialize = serialize_object(result)
136120
if serialize.get('body'):
137-
return serialize['body'][methodReturn]
121+
return serialize['body'][method_return]
138122
else:
139123
# Some responses (like SoftLayer_Account::getObject) don't have a body?
140124
return serialize
141-
except KeyError as e:
142-
message = f"Error serializeing response\n{result}\n"
125+
except KeyError as ex:
126+
message = f"Error serializeing response\n{result}\n{ex}"
143127
raise exceptions.TransportError(500, message)
144128

145129
def print_reproduceable(self, request):
@@ -149,5 +133,6 @@ def print_reproduceable(self, request):
149133
150134
:param request request: Request object
151135
"""
152-
136+
log = logging.getLogger(__name__)
137+
log.DEBUG(f"{request.service}::{request.method}()")
153138
return self.history.last_sent

SoftLayer/transports/timing.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ def get_last_calls(self):
3535
self.last_calls = []
3636
return last_calls
3737

38-
def print_reproduceable(self, call):
38+
@staticmethod
39+
def print_reproduceable(call):
3940
"""Not Implemented"""
4041
return call.service

SoftLayer/transports/xmlrpc.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
66
:license: MIT, see LICENSE for more details.
77
"""
8-
import logging
98
import re
109
from string import Template
1110
import xmlrpc.client
@@ -17,7 +16,6 @@
1716

1817
from .transport import _format_object_mask
1918
from .transport import _proxies_dict
20-
from .transport import ComplexEncoder
2119
from .transport import get_session
2220
from .transport import SoftLayerListResult
2321

tests/transport_tests.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,10 @@
44
55
:license: MIT, see LICENSE for more details.
66
"""
7-
import io
8-
import json
9-
from unittest import mock as mock
10-
import warnings
11-
12-
import pytest
137
import requests
8+
from unittest import mock as mock
149

1510
import SoftLayer
16-
from SoftLayer import consts
1711
from SoftLayer import testing
1812
from SoftLayer import transports
1913

tests/transports/debug_tests.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,10 @@
44
55
:license: MIT, see LICENSE for more details.
66
"""
7-
import io
8-
import json
9-
from unittest import mock as mock
10-
import warnings
11-
12-
import pytest
137
import requests
8+
from unittest import mock as mock
149

1510
import SoftLayer
16-
from SoftLayer import consts
1711
from SoftLayer import testing
1812
from SoftLayer import transports
1913

tests/transports/rest_tests.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,12 @@
44
55
:license: MIT, see LICENSE for more details.
66
"""
7-
import io
87
import json
8+
import requests
99
from unittest import mock as mock
1010
import warnings
1111

12-
import pytest
13-
import requests
14-
1512
import SoftLayer
16-
from SoftLayer import consts
1713
from SoftLayer import testing
1814
from SoftLayer import transports
1915

tests/transports/soap_tests.py

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,12 @@
55
:license: MIT, see LICENSE for more details.
66
"""
77
import io
8-
import json
9-
from unittest import mock as mock
108
import os
11-
import warnings
12-
13-
import pytest
149
import requests
1510

16-
import SoftLayer
17-
from SoftLayer import consts
1811
from SoftLayer import testing
19-
from SoftLayer.transports.soap import SoapTransport
2012
from SoftLayer.transports import Request
21-
22-
23-
from pprint import pprint as pp
13+
from SoftLayer.transports.soap import SoapTransport
2414

2515

2616
def get_soap_response():
@@ -58,7 +48,6 @@ def set_up(self):
5848
def test_call(self):
5949

6050
data = self.transport(self.request)
61-
pp(data)
6251
self.assertEqual(data.get('id'), 307608)
6352
self.assertEqual(data.get('companyName'), "SoftLayer Internal - Development Community")
6453

@@ -75,7 +64,6 @@ def test_call(self):
7564
def test_objectMask(self):
7665
self.request.mask = "mask[id,companyName]"
7766
data = self.transport(self.request)
78-
pp(data)
7967
self.assertEqual(data.get('companyName'), "SoftLayer Internal - Development Community")
8068
self.assertIsNone(data.get('address1'))
8169
self.assertEqual(data.get('id'), 307608)
@@ -88,10 +76,7 @@ def test_objectFilter(self):
8876
self.request.limit = 5
8977
self.request.offset = 0
9078
data = self.transport(self.request)
91-
# pp(data)
92-
# print("^^^ DATA **** ")
9379
for package in data:
94-
9580
self.assertEqual(package.get('type').get('keyName'), "BARE_METAL_CPU")
9681

9782
def test_virtualGuest(self):
@@ -117,4 +102,4 @@ def test_virtualGuest(self):
117102
thisVsi = self.transport(vsiRequest)
118103
self.assertEqual(thisVsi.get('id'), vsi.get('id'))
119104

120-
# TODO MORE COMPLEX OBJECT FILTERS!
105+
# NEXT MORE COMPLEX OBJECT FILTERS!

0 commit comments

Comments
 (0)