beeref/tests/test_config.py
Rebecca Breu 849de6197a Add new loglevel TRACE
The debug log file still only logs DEBUG and above, so it's less verbose now. TRACE output will only show in the console if the loglevel is set accordingly.
2021-07-28 18:33:27 +02:00

73 lines
2.1 KiB
Python

import os.path
import tempfile
from unittest.mock import patch
import pytest
from beeref.config import CommandlineArgs
def test_command_line_args_singleton():
assert CommandlineArgs() is CommandlineArgs()
assert CommandlineArgs()._args is CommandlineArgs()._args
CommandlineArgs._instance = None
@patch('beeref.config.parser.parse_args')
def test_command_line_args_with_check_forces_new_parsing(parse_mock):
args1 = CommandlineArgs()
args2 = CommandlineArgs(with_check=True)
parse_mock.assert_called_once()
assert args1 is not args2
CommandlineArgs._instance = None
def test_command_line_args_get():
args = CommandlineArgs()
assert args.loglevel == 'INFO'
CommandlineArgs._instance = None
def test_command_line_args_get_unknown():
args = CommandlineArgs()
with pytest.raises(AttributeError):
args.foo
CommandlineArgs._instance = None
def test_settings_recent_files_get_empty(settings):
settings.get_recent_files() == []
def test_settings_recent_files_get_existing_only(settings):
with tempfile.NamedTemporaryFile() as f:
settings.update_recent_files('foo.bee')
settings.update_recent_files(f.name)
settings.get_recent_files(existing_only=True) == [f.name]
def test_settings_recent_files_update(settings):
settings.update_recent_files('foo.bee')
settings.update_recent_files('bar.bee')
assert settings.get_recent_files() == [
os.path.abspath('bar.bee'),
os.path.abspath('foo.bee')]
def test_settings_recent_files_update_existing(settings):
settings.update_recent_files('foo.bee')
settings.update_recent_files('bar.bee')
settings.update_recent_files('foo.bee')
assert settings.get_recent_files() == [
os.path.abspath('foo.bee'),
os.path.abspath('bar.bee')]
def test_settings_recent_files_update_respects_max_num(settings):
for i in range(15):
settings.update_recent_files(f'{i}.bee')
recent = settings.get_recent_files()
assert len(recent) == 10
assert recent[0] == os.path.abspath('14.bee')
assert recent[-1] == os.path.abspath('5.bee')