mirror of
https://github.com/rbreu/beeref.git
synced 2026-03-11 08:54:28 +00:00
56 lines
1.7 KiB
Python
56 lines
1.7 KiB
Python
|
|
import logging
|
||
|
|
import os.path
|
||
|
|
from types import SimpleNamespace
|
||
|
|
from unittest.mock import patch
|
||
|
|
|
||
|
|
from PyQt6 import QtCore
|
||
|
|
|
||
|
|
from beeref.logging import (
|
||
|
|
BeeLogger,
|
||
|
|
BeeRotatingFileHandler,
|
||
|
|
qt_message_handler,
|
||
|
|
)
|
||
|
|
|
||
|
|
|
||
|
|
def test_sets_new_loglevel():
|
||
|
|
assert logging.getLevelName(5) == 'TRACE'
|
||
|
|
|
||
|
|
|
||
|
|
@patch('beeref.logging.BeeLogger.log')
|
||
|
|
def test_beelogger(log_mock):
|
||
|
|
logger = BeeLogger('mylogger', logging.TRACE)
|
||
|
|
logger.trace('blah: %s', 'spam', extra={'foo': 'bar'})
|
||
|
|
log_mock.assert_called_once_with(
|
||
|
|
logging.TRACE, 'blah: %s', 'spam', extra={'foo': 'bar'})
|
||
|
|
|
||
|
|
|
||
|
|
def test_rotating_file_handler_creates_new_dir(tmpdir):
|
||
|
|
logfile = os.path.join(tmpdir, 'foo', 'bar.log')
|
||
|
|
handler = BeeRotatingFileHandler(logfile)
|
||
|
|
handler.emit(logging.LogRecord(
|
||
|
|
'foo', logging.INFO, 'bar', 66, 'baz', [], None))
|
||
|
|
handler.close()
|
||
|
|
assert os.path.exists(logfile)
|
||
|
|
|
||
|
|
|
||
|
|
def testrotating_file_handler_uses_existing_dir(tmpdir):
|
||
|
|
logfile = os.path.join(tmpdir, 'bar.log')
|
||
|
|
handler = BeeRotatingFileHandler(logfile)
|
||
|
|
handler.emit(logging.LogRecord(
|
||
|
|
'foo', logging.INFO, 'bar', 66, 'baz', [], None))
|
||
|
|
handler.close()
|
||
|
|
assert os.path.exists(logfile)
|
||
|
|
|
||
|
|
|
||
|
|
@patch('beeref.logging.qtlogger.info')
|
||
|
|
def test_qt_message_handler_without(log_mock, qapp):
|
||
|
|
qt_message_handler(QtCore.QtMsgType.QtInfoMsg, None, 'foo')
|
||
|
|
log_mock.assert_called_once_with('foo')
|
||
|
|
|
||
|
|
|
||
|
|
@patch('beeref.logging.qtlogger.warning')
|
||
|
|
def test_qt_message_handler_with_context(log_mock, qapp):
|
||
|
|
ctx = SimpleNamespace(file='bla.txt', line='1', function='myfunc')
|
||
|
|
qt_message_handler(QtCore.QtMsgType.QtWarningMsg, ctx, 'foo')
|
||
|
|
log_mock.assert_called_once_with('foo: File bla.txt, line 1, in myfunc')
|