mirror of
https://github.com/rbreu/beeref.git
synced 2026-03-11 08:54:28 +00:00
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.
73 lines
2.1 KiB
Python
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')
|