mirror of
https://github.com/samsonjs/vdirsyncer.git
synced 2026-04-27 14:57:41 +00:00
Fix logging in test suite
This commit is contained in:
parent
9c076f7278
commit
3abebde87f
3 changed files with 41 additions and 24 deletions
|
|
@ -9,10 +9,8 @@
|
||||||
:license: MIT, see LICENSE for more details.
|
:license: MIT, see LICENSE for more details.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
import vdirsyncer.log
|
|
||||||
from vdirsyncer.utils.compat import text_type
|
from vdirsyncer.utils.compat import text_type
|
||||||
from vdirsyncer.utils.vobject import normalize_item as _normalize_item
|
from vdirsyncer.utils.vobject import normalize_item as _normalize_item
|
||||||
vdirsyncer.log.set_level(vdirsyncer.log.logging.DEBUG)
|
|
||||||
|
|
||||||
|
|
||||||
def blow_up(*a, **kw):
|
def blow_up(*a, **kw):
|
||||||
|
|
|
||||||
19
tests/conftest.py
Normal file
19
tests/conftest.py
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
'''
|
||||||
|
tests.conftest
|
||||||
|
~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
General-purpose fixtures for vdirsyncer's testsuite.
|
||||||
|
|
||||||
|
:copyright: (c) 2014 Markus Unterwaditzer & contributors
|
||||||
|
:license: MIT, see LICENSE for more details.
|
||||||
|
'''
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
import vdirsyncer.log
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(autouse=True)
|
||||||
|
def setup_logging():
|
||||||
|
vdirsyncer.log.set_level(vdirsyncer.log.logging.DEBUG)
|
||||||
|
vdirsyncer.log.add_handler(vdirsyncer.log.stdout_handler)
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
:license: MIT, see LICENSE for more details.
|
:license: MIT, see LICENSE for more details.
|
||||||
'''
|
'''
|
||||||
import logging
|
import logging
|
||||||
|
import sys
|
||||||
|
|
||||||
import click
|
import click
|
||||||
|
|
||||||
|
|
@ -26,44 +27,43 @@ class ColorFormatter(logging.Formatter):
|
||||||
if level in self.colors:
|
if level in self.colors:
|
||||||
prefix = click.style('{}: '.format(level),
|
prefix = click.style('{}: '.format(level),
|
||||||
**self.colors[level])
|
**self.colors[level])
|
||||||
record.msg = prefix + record.msg
|
record.msg = '\n'.join(prefix + x
|
||||||
|
for x in str(record.msg).splitlines())
|
||||||
|
|
||||||
return logging.Formatter.format(self, record)
|
return logging.Formatter.format(self, record)
|
||||||
|
|
||||||
|
|
||||||
class ClickStream(object):
|
class ClickStream(object):
|
||||||
def write(self, string):
|
def write(self, string):
|
||||||
click.echo(string, nl=False)
|
click.echo(string, file=sys.stderr, nl=False)
|
||||||
|
|
||||||
|
|
||||||
stdout_handler = logging.StreamHandler(ClickStream())
|
stdout_handler = logging.StreamHandler(ClickStream())
|
||||||
stdout_handler.formatter = ColorFormatter()
|
stdout_handler.formatter = ColorFormatter()
|
||||||
default_level = logging.INFO
|
|
||||||
|
|
||||||
|
_level = logging.INFO
|
||||||
|
_handlers = []
|
||||||
|
|
||||||
def add_handler(handler):
|
_loggers = {}
|
||||||
for logger in loggers.values():
|
|
||||||
logger.addHandler(handler)
|
|
||||||
|
|
||||||
|
|
||||||
def create_logger(name):
|
|
||||||
x = logging.getLogger(name)
|
|
||||||
x.setLevel(default_level)
|
|
||||||
return x
|
|
||||||
|
|
||||||
|
|
||||||
loggers = {}
|
|
||||||
|
|
||||||
|
|
||||||
def get(name):
|
def get(name):
|
||||||
assert name.startswith('vdirsyncer.')
|
assert name.startswith('vdirsyncer.')
|
||||||
if name not in loggers:
|
if name not in _loggers:
|
||||||
loggers[name] = create_logger(name)
|
_loggers[name] = x = logging.getLogger(name)
|
||||||
return loggers[name]
|
x.handlers = _handlers
|
||||||
|
x.setLevel(_level)
|
||||||
|
|
||||||
|
return _loggers[name]
|
||||||
|
|
||||||
|
|
||||||
|
def add_handler(handler):
|
||||||
|
if handler not in _handlers:
|
||||||
|
_handlers.append(handler)
|
||||||
|
|
||||||
|
|
||||||
def set_level(level):
|
def set_level(level):
|
||||||
global default_level
|
global _level
|
||||||
default_level = level
|
_level = level
|
||||||
for logger in loggers.values():
|
for logger in _loggers.values():
|
||||||
logger.setLevel(level)
|
logger.setLevel(_level)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue