Source code for ska.tests.base
import datetime
import logging
from urllib.parse import parse_qs, urlparse
from .. import TIMESTAMP_FORMAT
__author__ = "Artur Barseghyan <artur.barseghyan@gmail.com>"
__copyright__ = "2013-2023 Artur Barseghyan"
__license__ = "GPL-2.0-only OR LGPL-2.1-or-later"
__all__ = (
"LOG_INFO",
"log_info",
"parse_url_params",
"timestamp_to_human_readable",
)
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(f"\n\n{func.__name__}")
logger.debug("============================")
if func.__doc__:
logger.debug(f'""" {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 timestamp:
: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