66 lines
2.2 KiB
Python
66 lines
2.2 KiB
Python
|
from __future__ import division
|
||
|
from __future__ import print_function
|
||
|
|
||
|
import sys
|
||
|
import warnings
|
||
|
|
||
|
import py
|
||
|
from pytest import PytestWarning
|
||
|
|
||
|
|
||
|
class PytestBenchmarkWarning(PytestWarning):
|
||
|
pass
|
||
|
|
||
|
|
||
|
class Logger(object):
|
||
|
def __init__(self, verbose, config=None):
|
||
|
self.verbose = verbose
|
||
|
self.term = py.io.TerminalWriter(file=sys.stderr)
|
||
|
self.suspend_capture = None
|
||
|
self.resume_capture = None
|
||
|
if config:
|
||
|
capman = config.pluginmanager.getplugin("capturemanager")
|
||
|
if capman:
|
||
|
self.suspend_capture = getattr(capman,
|
||
|
'suspend_global_capture',
|
||
|
getattr('capman', 'suspendcapture', None))
|
||
|
self.resume_capture = getattr(capman,
|
||
|
'resume_global_capture',
|
||
|
getattr('capman', 'resumecapture', None))
|
||
|
|
||
|
def warn(self, text, warner=None, suspend=False):
|
||
|
if self.verbose:
|
||
|
if suspend and self.suspend_capture:
|
||
|
self.suspend_capture(in_=True)
|
||
|
self.term.line("")
|
||
|
self.term.sep("-", red=True, bold=True)
|
||
|
self.term.write(" WARNING: ", red=True, bold=True)
|
||
|
self.term.line(text, red=True)
|
||
|
self.term.sep("-", red=True, bold=True)
|
||
|
if suspend and self.resume_capture:
|
||
|
self.resume_capture()
|
||
|
if warner is None:
|
||
|
warner = warnings.warn
|
||
|
warner(PytestBenchmarkWarning(text))
|
||
|
|
||
|
def error(self, text):
|
||
|
self.term.line("")
|
||
|
self.term.sep("-", red=True, bold=True)
|
||
|
self.term.line(text, red=True, bold=True)
|
||
|
self.term.sep("-", red=True, bold=True)
|
||
|
|
||
|
def info(self, text, newline=True, **kwargs):
|
||
|
if not kwargs or kwargs == {'bold': True}:
|
||
|
kwargs['purple'] = True
|
||
|
if newline:
|
||
|
self.term.line("")
|
||
|
self.term.line(text, **kwargs)
|
||
|
|
||
|
def debug(self, text, newline=False, **kwargs):
|
||
|
if self.verbose:
|
||
|
if self.suspend_capture:
|
||
|
self.suspend_capture(in_=True)
|
||
|
self.info(text, newline=newline, **kwargs)
|
||
|
if self.resume_capture:
|
||
|
self.resume_capture()
|