Refactor the code of osccore-qa-testing-tools to comply with PEP8.
Related-prod: PRODX-42195
Change-Id: Id05e7584e0d024127ce1bd5042cfe681a1b52e2d
diff --git a/update_testrail_xml/client.py b/update_testrail_xml/client.py
index 94bc5f6..a1b45a9 100644
--- a/update_testrail_xml/client.py
+++ b/update_testrail_xml/client.py
@@ -1,4 +1,5 @@
from __future__ import absolute_import
+
import logging
import time
@@ -6,7 +7,7 @@
logger = logging.getLogger(__name__)
-requests_logger = logging.getLogger('requests.packages.urllib3')
+requests_logger = logging.getLogger("requests.packages.urllib3")
requests_logger.setLevel(logging.WARNING)
@@ -17,8 +18,10 @@
def find_all(self, **kwargs):
filtered = ItemSet(
- x for x in self
- if all(getattr(x, k) == v for k, v in kwargs.items()))
+ x
+ for x in self
+ if all(getattr(x, k) == v for k, v in kwargs.items())
+ )
filtered._item_class = self._item_class
return filtered
@@ -32,8 +35,8 @@
class Collection(object):
- _list_url = 'get_{name}s'
- _add_url = 'add_{name}'
+ _list_url = "get_{name}s"
+ _add_url = "add_{name}"
def __init__(self, item_class=None, parent_id=None, **kwargs):
self._item_class = item_class
@@ -46,12 +49,12 @@
name = self._item_class._api_name()
if id is None:
items = self._list(name)
- if 'error' in items:
+ if "error" in items:
raise Exception(items)
- if name == 'project':
- items = items['projects']
- if name == 'case':
- items = items['cases']
+ if name == "project":
+ items = items["projects"]
+ if name == "case":
+ items = items["cases"]
items = ItemSet(self._to_object(x) for x in items)
items._item_class = self._item_class
return items
@@ -60,7 +63,7 @@
return self._item_class.get(id)
def __repr__(self):
- return '<Collection of {}>'.format(self._item_class.__name__)
+ return "<Collection of {}>".format(self._item_class.__name__)
def _to_object(self, data):
return self._item_class(**data)
@@ -69,8 +72,8 @@
params = params or {}
url = self._list_url.format(name=name)
if self.parent_id is not None:
- url += '/{}'.format(self.parent_id)
- return self._handler('GET', url, params=params)
+ url += "/{}".format(self.parent_id)
+ return self._handler("GET", url, params=params)
def find_all(self, **kwargs):
return self().find_all(**kwargs)
@@ -92,10 +95,10 @@
class Item(object):
- _get_url = 'get_{name}/{id}'
- _update_url = 'update_{name}/{id}'
+ _get_url = "get_{name}/{id}"
+ _update_url = "update_{name}/{id}"
_handler = None
- _repr_field = 'name'
+ _repr_field = "name"
def __init__(self, id=None, **kwargs):
self.id = id
@@ -112,29 +115,30 @@
raise AttributeError
def __setattr__(self, name, value):
- if '_data' in self.__dict__ and name not in self.__dict__:
- self.__dict__['_data'][name] = value
+ if "_data" in self.__dict__ and name not in self.__dict__:
+ self.__dict__["_data"][name] = value
else:
self.__dict__[name] = value
def __repr__(self):
- name = getattr(self, self._repr_field, '')
+ name = getattr(self, self._repr_field, "")
name = repr(name)
- return '<{c.__name__}({s.id}) {name} at 0x{id:x}>'.format(
- s=self, c=self.__class__, id=id(self), name=name)
+ return "<{c.__name__}({s.id}) {name} at 0x{id:x}>".format(
+ s=self, c=self.__class__, id=id(self), name=name
+ )
@classmethod
def get(cls, id):
name = cls._api_name()
url = cls._get_url.format(name=name, id=id)
- result = cls._handler('GET', url)
- if 'error' in result:
+ result = cls._handler("GET", url)
+ if "error" in result:
raise Exception(result)
return cls(**result)
def update(self):
url = self._update_url.format(name=self._api_name(), id=self.id)
- self._handler('POST', url, json=self.data)
+ self._handler("POST", url, json=self.data)
@property
def data(self):
@@ -152,8 +156,10 @@
def cases(self):
return CaseCollection(
Case,
- _list_url='get_cases/{}&suite_id={}'.format(self.project_id,
- self.id))
+ _list_url="get_cases/{}&suite_id={}".format(
+ self.project_id, self.id
+ ),
+ )
class CaseCollection(Collection):
@@ -165,18 +171,20 @@
class Plan(Item):
- def __init__(self,
- name,
- description=None,
- milestone_id=None,
- entries=None,
- id=None,
- **kwargs):
+ def __init__(
+ self,
+ name,
+ description=None,
+ milestone_id=None,
+ entries=None,
+ id=None,
+ **kwargs
+ ):
add_kwargs = {
- 'name': name,
- 'description': description,
- 'milestone_id': milestone_id,
- 'entries': entries or [],
+ "name": name,
+ "description": description,
+ "milestone_id": milestone_id,
+ "entries": entries or [],
}
kwargs.update(add_kwargs)
return super(self.__class__, self).__init__(id, **kwargs)
@@ -186,14 +194,14 @@
def __init__(self, base_url, username, password):
self.username = username
self.password = password
- self.base_url = base_url.rstrip('/') + '/index.php?/api/v2/'
+ self.base_url = base_url.rstrip("/") + "/index.php?/api/v2/"
Item._handler = self._query
def _query(self, method, url, **kwargs):
url = self.base_url + url
- headers = {'Content-type': 'application/json'}
- logger.debug('Make {} request to {}'.format(method, url))
+ headers = {"Content-type": "application/json"}
+ logger.debug("Make {} request to {}".format(method, url))
for _ in range(5):
response = requests.request(
method,
@@ -201,7 +209,8 @@
allow_redirects=False,
auth=(self.username, self.password),
headers=headers,
- **kwargs)
+ **kwargs
+ )
# To many requests
if response.status_code == 429:
time.sleep(60)
@@ -210,13 +219,15 @@
break
# Redirect or error
if response.status_code >= 300:
- raise requests.HTTPError("Wrong response:\n"
- "status_code: {0.status_code}\n"
- "headers: {0.headers}\n"
- "content: '{0.content}'".format(response),
- response=response)
+ raise requests.HTTPError(
+ "Wrong response:\n"
+ "status_code: {0.status_code}\n"
+ "headers: {0.headers}\n"
+ "content: '{0.content}'".format(response),
+ response=response,
+ )
result = response.json()
- if 'error' in result:
+ if "error" in result:
logger.warning(result)
return result
@@ -231,8 +242,9 @@
self.conditions = conditions
def __str__(self):
- conditions = ', '.join(['{}="{}"'.format(x, y)
- for (x, y) in self.conditions.items()])
- return u'{type} with {conditions}'.format(
- type=self.item_class._api_name().title(),
- conditions=conditions)
\ No newline at end of file
+ conditions = ", ".join(
+ ['{}="{}"'.format(x, y) for (x, y) in self.conditions.items()]
+ )
+ return "{type} with {conditions}".format(
+ type=self.item_class._api_name().title(), conditions=conditions
+ )