import datetime
import logging
from six import PY3
from .. import TIMESTAMP_FORMAT
try:
from six.moves.urllib.parse import urlparse, parse_qs
except ImportError as err:
if PY3:
from urllib.parse import urlparse, parse_qs
else:
from urlparse import urlparse, parse_qs
__title__ = 'ska.tests.base'
__author__ = 'Artur Barseghyan <artur.barseghyan@gmail.com>'
__copyright__ = '2013-2018 Artur Barseghyan'
__license__ = 'GPL 2.0/LGPL 2.1'
__all__ = (
'LOG_INFO',
'log_info',
'timestamp_to_human_readable',
'parse_url_params',
)
logger = logging.getLogger(__name__)
LOG_INFO = True
[docs]def log_info(func):
"""Prints some useful info."""
if not LOG_INFO:
return func
def inner(self, *args, **kwargs):
"""Inner"""
result = func(self, *args, **kwargs)
logger.debug('\n\n%s', func.__name__)
logger.debug('============================')
if func.__doc__:
logger.debug('""" %s """', func.__doc__.strip())
logger.debug('----------------------------')
if result is not None:
logger.debug(result)
logger.debug('\n++++++++++++++++++++++++++++')
return result
return inner
[docs]def timestamp_to_human_readable(timestamp):
"""Convert Unix timestamp to human readable string.
:param float:
:return str:
"""
val = datetime.datetime.fromtimestamp(float(timestamp))
return val.strftime(TIMESTAMP_FORMAT)
[docs]def parse_url_params(url):
"""Parses URL params.
:param str url:
:return dict:
"""
data = parse_qs(urlparse(url).query)
for key, val in data.items():
data[key] = val[0]
return data