Пример #1
0
 def test_barcode_del(self):
     for err1, err2, expect_state in [
         (_ERR_404, "", LOCK_STATE_FREE),
         ("", _ERR_404, LOCK_STATE_FREE),
         (_ERR_404, _ERR_404, LOCK_STATE_FREE),
         (_ERR_404, "Something", LOCK_STATE_BATCH),
         ("", "Something", LOCK_STATE_FREE),
         ("Something", "Something", LOCK_STATE_BATCH),
     ]:
         mocker = MockDBPC()
         reestr = {"db_reestr_id": 1, "db_locked": LOCK_STATE_BATCH}
         letter = {"db_letter_id": 1, "db_locked": LOCK_STATE_BATCH, "id": 10,
                   "db_reestr_id": 1}
         log = logging.getLogger("postall")
         hndl = BufferingHandler(10)
         log.addHandler(hndl)
         mocker.add_retval("get_reestr_info", 0, (reestr, ""))
         mocker.add_retval("remove_backlogs",1, [(10, err1)])
         mocker.add_retval("remove_backlogs_from_shipment",1, [(10, err2)])
         mocker.add_retval("modify_letter",1, (True, ""))
         barcode_del(mocker, mocker, reestr, letter)
         for func, args in mocker.logs:
             if func[0] == "modify_letter":
                 if args[0]["db_locked"] != expect_state:
                     self.fail(u"test_barcode_del: unexpected (%s, %s, %d) <> (%d)" %\
                               (err1, err2, expect_state, args[0]["db_locked"]))
Пример #2
0
 def setUp(self):
     super(ServiceOutputParserTest, self).setUp()
     self.transport = StringTransport()
     self.handler = BufferingHandler(2)
     self.useFixture(LogHandler(self.handler))
     self.parser = ServiceOutputParser()
     self.parser.setServiceName("my-app")
     self.parser.makeConnection(self.transport)
Пример #3
0
def create_session_logger(log_format="CPC"):
    global HANDLER

    logger = logging.getLogger("")
    try:
        logger.addHandler(HANDLER["%s-buffer" % log_format])
    except KeyError:
        _formatter = logging.Formatter(log_format)
        handl = BufferingHandler(10000)
        handl.setFormatter(_formatter)
        logger.addHandler(handl)

    logger.setLevel(logging.INFO)

    return logger
Пример #4
0
    def setUp(self):
        self.corba_object = Mock(spec=['method'])
        # Set the default result
        self.corba_object.method.return_value = sentinel.result
        self.corba_client = CorbaClient(self.corba_object, SentinelRecoder(),
                                        InternalServerError)

        # Mock logging
        self.log_handler = BufferingHandler(10)
        logger = logging.getLogger('pyfco.client')
        patcher = patch.object(logger, 'handlers', [self.log_handler])
        self.addCleanup(patcher.stop)
        patcher.start()
        self.addCleanup(logger.setLevel, logger.level)
        logger.setLevel(logging.DEBUG)
Пример #5
0
def logger_factory(logtype='syslog',
                   logfile=None,
                   level='WARNING',
                   logid='PXE',
                   format=None):
    # this code has been copied from Trac (MIT modified license)
    logger = getLogger(logid)
    logtype = logtype.lower()
    if logtype == 'file':
        hdlr = FileHandler(logfile)
    elif logtype in ('winlog', 'eventlog', 'nteventlog'):
        # Requires win32 extensions
        hdlr = NTEventLogHandler(logid, logtype='Application')
    elif logtype in ('syslog', 'unix'):
        hdlr = SysLogHandler('/dev/log')
    elif logtype in ('stderr'):
        hdlr = StreamHandler(stderr)
    elif logtype in ('stdout'):
        hdlr = StreamHandler(stdout)
    else:
        hdlr = BufferingHandler(0)

    if not format:
        format = 'PXE[%(module)s] %(levelname)s: %(message)s'
        if logtype in ('file', 'stderr'):
            format = '%(asctime)s ' + format
    datefmt = ''
    if logtype == 'stderr':
        datefmt = '%X'
    level = level.upper()
    if level in ('DEBUG', 'ALL'):
        logger.setLevel(DEBUG)
    elif level == 'INFO':
        logger.setLevel(INFO)
    elif level == 'ERROR':
        logger.setLevel(ERROR)
    elif level == 'CRITICAL':
        logger.setLevel(CRITICAL)
    else:
        logger.setLevel(WARNING)
    formatter = Formatter(format, datefmt)
    hdlr.setFormatter(formatter)
    logger.addHandler(hdlr)
    return logger
Пример #6
0
    def __init__(self, *, config=None, read_only=True, debug=True, echo=False):
        # Read-only for testing
        self.__read_only = read_only

        # Configuration
        self.__config = self._create_config([config])

        # Logging
        logger = self.get_property(self._SECTION, 'log_path',
                                   'logs/cryptowelder.log')

        formatter = Formatter(
            '[%(asctime)-15s][%(levelname)-5s][%(name)s] %(message)s')
        self.__stream_handler = StreamHandler()
        self.__stream_handler.setFormatter(formatter)
        self.__stream_handler.setLevel(DEBUG if debug else INFO)
        self.__rotate_handler = TimedRotatingFileHandler(
            logger,
            when=self.get_property(self._SECTION, 'log_roll', 'D'),
            backupCount=int(self.get_property(
                self._SECTION, 'log_bkup', 7))) if path.exists(
                    path.dirname(logger)) else BufferingHandler(64)
        self.__rotate_handler.setFormatter(formatter)
        self.__rotate_handler.setLevel(DEBUG)
        self.__logger = self.get_logger(self)
        self.__logger.info('Logger : %s', logger)
        self.__logger.info('Config : %s', config)

        # Database
        database = self.get_property(self._SECTION, 'database',
                                     'sqlite:///:memory:')
        self.__engine = create_engine(database, echo=echo)
        self.__session = scoped_session(sessionmaker(bind=self.__engine))
        self.__logger.info('Database : %s (read_only=%s)', database, read_only)

        # Cache
        self.__nonce_lock = defaultdict(lambda: Lock())
        self.__nonce_time = {}
Пример #7
0
def create_logger(filename):
    """
    Creates a logger with a given filename.
    :param filename: File name for the log
    :return: A logger class.
    """
    logger = logging.getLogger("")
    LOGFILE_NAME = filename
    hdlr = logging.FileHandler(LOGFILE_NAME)
    base_formatter = logging.Formatter(
        "%(asctime)s %(name)s:%(levelname)s %(message)s")
    CPC = ('%(asctime)s %(name)s:%(levelname)s '
           '[%(client)s,%(path)s,%(cid)s] %(message)s')
    cpc_formatter = logging.Formatter(CPC)
    hdlr.setFormatter(base_formatter)
    logger.addHandler(hdlr)
    logger.setLevel(logging.DEBUG)
    _formatter = logging.Formatter(CPC)
    fil_handl = logging.FileHandler(LOGFILE_NAME)
    fil_handl.setFormatter(_formatter)

    buf_handl = BufferingHandler(10000)
    buf_handl.setFormatter(_formatter)
    return logger
Пример #8
0
import logging
import sys
from logging import Formatter
from logging.handlers import BufferingHandler, RotatingFileHandler, SysLogHandler
from typing import Any, Dict

from freqtrade.exceptions import OperationalException


logger = logging.getLogger(__name__)
LOGFORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'

# Initialize bufferhandler - will be used for /log endpoints
bufferHandler = BufferingHandler(1000)
bufferHandler.setFormatter(Formatter(LOGFORMAT))


def _set_loggers(verbosity: int = 0, api_verbosity: str = 'info') -> None:
    """
    Set the logging level for third party libraries
    :return: None
    """

    logging.getLogger('requests').setLevel(
        logging.INFO if verbosity <= 1 else logging.DEBUG
    )
    logging.getLogger("urllib3").setLevel(
        logging.INFO if verbosity <= 1 else logging.DEBUG
    )
    logging.getLogger('ccxt.base.exchange').setLevel(
        logging.INFO if verbosity <= 2 else logging.DEBUG
Пример #9
0
    def setUp(self):
        def set_ev(fu):
            def new_fu(*args, **kwargs):
                s = args[0]
                s.event.set()
                s.val = (args, kwargs)
                return fu(*args, **kwargs)

            return new_fu

        class ATestWorker(Worker):
            def __init__(self, name, message_queue):
                Worker.__init__(self, name, message_queue)
                self.event = Event()
                self.val = None
                self.started = False
                self.stopped = False

            @local_thread
            @set_ev
            def echo(self, val):
                return val

            @local_thread_blocking
            @set_ev
            def echo_block(self, val):
                return val

            def onStart(self):
                self.started = True

            def onStop(self):
                self.stopped = True

            @local_thread
            def raise_(self, ex):
                raise ex

            @local_thread_blocking
            def raise_blocking(self, ex):
                raise ex

            @set_ev
            def call_me_by_name(self, arg1, arg2):
                return

            def call_me_by_name_blocking(self, arg1, arg2):
                return arg1, arg2

        self.buha = BufferingHandler(10000)

        q = Queue()
        self.q = q

        NAME = "Test"
        l = logging.getLogger(NAME)

        self.w = ATestWorker(NAME, q)
        self.assertEqual(self.w.log(), l)

        l.propagate = 0
        l.addHandler(self.buha)

        self.assertFalse(self.w.started)
        self.w.start()
        sleep(0.05)
        self.assertTrue(self.w.started)
Пример #10
0
base_formatter = logging.Formatter(
    "%(asctime)s %(name)s:%(levelname)s %(message)s")

CPC = ('%(asctime)s %(name)s:%(levelname)s '
       '[%(client)s,%(path)s,%(cid)s] %(message)s')
cpc_formatter = logging.Formatter(CPC)

hdlr.setFormatter(base_formatter)
LOGGER.addHandler(hdlr)
LOGGER.setLevel(logging.DEBUG)

_formatter = logging.Formatter(CPC)
fil_handl = logging.FileHandler(LOGFILE_NAME)
fil_handl.setFormatter(_formatter)

buf_handl = BufferingHandler(10000)
buf_handl.setFormatter(_formatter)

HANDLER = {"CPC-file": fil_handl, "CPC-buffer": buf_handl}
ACTIVE_HANDLER = "BASE"
URLMAP = {}

NAME = "pyoic"

OAS = None

PASSWD = {
    "diana": "krall",
    "babs": "howes",
    "upper": "crust",
    "rohe0002": "StevieRay",
def handler() -> Handler:
    return BufferingHandler(100)
Пример #12
0
    def test_barcode_add(self):
        _DEFAULT_REESTR = {"db_reestr_id": 1, "db_locked": LOCK_STATE_FREE,
                        "batch-name":""}
        _DEFAULT_LETTER = {"db_letter_id": 1, "db_locked": LOCK_STATE_FREE,
                        "id": 0,
                        "db_reestr_id": 1, "db_user_id": 1, "comment":"c"}
        _DEFAULT_CALLS = [("get_reestr_info", 0,
                        (
                        {"db_reestr_id": 1, "db_locked": LOCK_STATE_FREE,
                         "batch-name":"", "list-number-date": date(2018,9,1)}, "")),
                       ("get_user_info", 0,
                        (
                            {"fio": "", "admin": False, "db_user_id": 1},
                            "")),
                       ("add_backlog", 0, (111, "")),
                       ("modify_letter", 0, (True, "")),
                       ("add_batch", 0, ({"batch-name":"10"}, "")),
                       ("modify_reestr", 0, (True, "")),
                       ("get_backlog", 0, ({"barcode": "123456789"}, "")),
                       ]
        TEST_DATA = [
            # BATCH (do nothing)
            # 1
            {"reestr":{"db_reestr_id": 1, "db_locked": LOCK_STATE_BATCH},
             "letter": {"db_letter_id": 1, "db_locked": LOCK_STATE_BATCH, "id": 10,
                  "db_reestr_id": 1},
             "calls": [("get_reestr_info", 0,
                        ({"db_reestr_id": 1, "db_locked": LOCK_STATE_BATCH}, ""))
                       ],
             "errlog_length": 0,
             "func_check": None,
             "log_check": None
             },
            # NORMAL
            # 2
            {"reestr": deepcopy(_DEFAULT_REESTR),
             "letter": deepcopy(_DEFAULT_LETTER),
             "calls": deepcopy(_DEFAULT_CALLS),
             "errlog_length": 0,
             "func_check":
                 lambda logs: True if logs[-1][0][0]=='modify_letter' and \
                                      logs[-1][1][0]["db_locked"]==LOCK_STATE_BATCH \
                 else False,
             "log_check": None
             },
            # NETWORK FAIL
            # 3
            {"reestr": deepcopy(_DEFAULT_REESTR),
             "letter": deepcopy(_DEFAULT_LETTER),
             "calls": deepcopy(_DEFAULT_CALLS)+[("add_backlog", 1, (0, "Net fail"))],
             "errlog_length": 0,
             "func_check":
                 lambda logs: True \
                    if logs[-1][0][0] == 'modify_letter' and \
                       logs[-1][1][0]["db_last_error"].find("add_backlog")>=0 and \
                       logs[-1][1][0]["db_locked"] == LOCK_STATE_FREE \
                     else False,
             "log_check": None
             },
            # 4
            {"reestr": deepcopy(_DEFAULT_REESTR),
             "letter": deepcopy(_DEFAULT_LETTER),
             "calls": deepcopy(_DEFAULT_CALLS) + [
                 ("add_batch", 1, ({}, "Net fail"))],
             "errlog_length": 0,
             "func_check":
                 lambda logs: True \
                     if logs[-1][0][0] == 'modify_letter' and \
                        logs[-1][1][0]["db_last_error"].find(
                            "add_batch") >= 0 and \
                        logs[-1][1][0]["db_locked"] == LOCK_STATE_BACKLOG \
                     else False,
             "log_check": None
             },
            # 5
            {"reestr": deepcopy(_DEFAULT_REESTR),
             "letter": deepcopy(_DEFAULT_LETTER),
             "calls": deepcopy(_DEFAULT_CALLS) + [
                 ("get_backlog", 1, ({}, "Net fail"))],
             "errlog_length": 0,
             "func_check":
                 lambda logs: True \
                     if logs[-1][0][0] == 'modify_letter' and \
                        logs[-1][1][0]["db_last_error"].find(
                            "get_backlog") >= 0 and \
                        logs[-1][1][0]["db_locked"] == LOCK_STATE_BACKLOG \
                     else False,
             "log_check": None
             },
            # DB FAIL
            # 6
            {"reestr": deepcopy(_DEFAULT_REESTR),
             "letter": deepcopy(_DEFAULT_LETTER),
             "calls": deepcopy(_DEFAULT_CALLS) + [
                 ("get_user_info", 1, (False, "DB fail"))],
             "errlog_length": 1,
             "func_check": None,
             "log_check":
                 lambda buffer: True \
                     if buffer[-1].msg.find("get_user_info") >= 0 \
                     else False
             },
            # 7
            {"reestr": deepcopy(_DEFAULT_REESTR),
             "letter": deepcopy(_DEFAULT_LETTER),
             "calls": deepcopy(_DEFAULT_CALLS) + [
                 ("modify_letter", 2, (False, "DB fail"))],
             "errlog_length": 1,
             "func_check":
                 lambda logs: True if logs[-1][0][0]=='modify_letter' and \
                                      logs[-1][1][0]["db_locked"]==LOCK_STATE_BATCH \
                 else False,
             "log_check":
                 lambda buffer: True \
                     if buffer[-1].msg.find("modify_letter") >= 0 \
                     else False
             },
            # 8 'network cable was cutted'
            {"reestr": deepcopy(_DEFAULT_REESTR),
             "letter": deepcopy(_DEFAULT_LETTER),
             "calls": deepcopy(_DEFAULT_CALLS) + [
                 ("get_backlog", 1, ({}, "Net fail")),
                 ("modify_letter", 2, (False, "DB fail"))],
             "errlog_length": 1,
             "func_check":
                 lambda logs: True if logs[-1][0][0] == 'modify_letter' and \
                                      logs[-1][1][0][
                                          "db_locked"] == LOCK_STATE_BACKLOG \
                     else False,
             "log_check":
                 lambda buffer: True \
                     if buffer[-1].msg.find("modify_letter") >= 0 \
                     else False
             },

        ]
        test_number = 0
        fail_count = 0
        for td in TEST_DATA:
            test_number += 1
            mocker = MockDBPC()
            reestr = td["reestr"]
            letter = td["letter"]
            log = logging.getLogger("postall")
            hndl = BufferingHandler(10)
            log.addHandler(hndl)
            for func_name, ncall, result in td["calls"]:
                mocker.add_retval(func_name, ncall, result)
            barcode_add(mocker, mocker, reestr, letter)
            if len(hndl.buffer) != td["errlog_length"]:
                fail_count += 1
                print("---------------test_number=%d---------------" % (test_number,))
                print(u"test_barcode_add: unexpected errlog length (%d <> %d)" % \
                          (len(hndl.buffer), td["errlog_length"]))
                for i in hndl.buffer:
                    print(i)
            if td["log_check"] != None and not td["log_check"](hndl.buffer):
                fail_count += 1
                print("---------------test_number=%d---------------" % (
                test_number,))
                print("logger records:")
                for i in hndl.buffer:
                    print(i)
                lines = inspect.getsourcelines(td["log_check"])
                print(u"test_barcode_add: failed log check:\n%s" %
                      (''.join(lines[0]),))
            if td["func_check"] != None and not td["func_check"](mocker.logs):
                fail_count += 1
                print("---------------test_number=%d---------------" % (test_number,))
                print("logs:")
                for func, args in mocker.logs:
                    print((func, args))
                lines = inspect.getsourcelines(td["func_check"])
                print(u"test_barcode_add: failed check:\n%s" %
                          (''.join(lines[0]),))
            log.removeHandler(hndl)
        if fail_count > 0:
            self.fail("test failed, check output")
Пример #13
0
from os.path import dirname, realpath
from logging.handlers import BufferingHandler

from loguru import logger

__path__ = dirname(realpath(__file__))

mem_handler = BufferingHandler(capacity=15000)
logger.add(mem_handler, colorize=True, level='INFO', enqueue=False)
Пример #14
0
from beproud.django.mailer.models import init_mailer
from beproud.django.mailer.backends.base import BaseEmailBackend
from beproud.django.mailer.signals import mail_pre_send, mail_post_send
from beproud.django.mailer import (
    EmailMessage,
    EmailMultiAlternatives,
    send_mail,
    send_template_mail,
    mail_managers,
    mail_admins,
    mail_managers_template,
    send_mass_mail,
)

# Suppress logging
logging.getLogger("").handlers = [BufferingHandler(0)]

__all__ = (
    'EncodingTestCaseUTF8',
    'EncodingTestCaseISO2022JP',
    'EmailAllForwardTestCase',
    'EmailAllForwardTestCase2',
    'TemplateTestCase',
    'TemplateContextTestCase',
    'DjangoMailISO2022JPTestCase',
    'DjangoMailUTF8TestCase',
    'SignalTest',
    'MassMailTest',
    'UTCTimeTestCase',
    'LocalTimeTestCase',
    'FailSilentlyTestCase',