mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-20 04:58:32 +02:00
refactor override unittest
This commit is contained in:
parent
c4b3d51181
commit
9e2b7dd0c1
1 changed files with 30 additions and 7 deletions
|
@ -1,3 +1,4 @@
|
|||
from typing import Any
|
||||
import pytest
|
||||
import pytest_mock
|
||||
import mock
|
||||
|
@ -5,27 +6,49 @@ import mock
|
|||
import yaml
|
||||
from jrnl.args import parse_args
|
||||
from jrnl.jrnl import run
|
||||
from jrnl import install
|
||||
from jrnl import install, editor
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def minimal_config():
|
||||
with open("features/data/configs/editor.yaml", "r") as cfg_file:
|
||||
yield yaml.load(cfg_file.read())
|
||||
cfg = yaml.load(cfg_file.read())
|
||||
yield cfg
|
||||
|
||||
@pytest.fixture()
|
||||
def expected_override(minimal_config):
|
||||
exp_out_cfg = minimal_config.copy()
|
||||
exp_out_cfg['editor'] = 'nano'
|
||||
exp_out_cfg['journal'] = 'features/journals/simple.journal'
|
||||
yield exp_out_cfg
|
||||
|
||||
|
||||
from jrnl import jrnl
|
||||
|
||||
|
||||
@mock.patch.object(jrnl, "write_mode")
|
||||
|
||||
@mock.patch('sys.stdin.isatty')
|
||||
@mock.patch.object(install, "load_or_install_jrnl")
|
||||
@mock.patch('subprocess.call')
|
||||
def test_override_configured_editor(
|
||||
mock_load_or_install, mock_write_mode, minimal_config
|
||||
mock_subprocess_call,
|
||||
mock_load_or_install,
|
||||
mock_isatty,
|
||||
minimal_config,
|
||||
expected_override,
|
||||
capsys
|
||||
):
|
||||
mock_load_or_install.return_value = minimal_config
|
||||
mock_isatty.return_value = True
|
||||
|
||||
cli_args = ["--override", '{"editor": "nano"}']
|
||||
parser = parse_args(cli_args)
|
||||
assert parser.config_override.__len__() == 1
|
||||
with mock.patch("subprocess.call"):
|
||||
res = run(parser)
|
||||
assert res == None
|
||||
def mock_editor_launch(editor):
|
||||
print("%s launched! Success!"%editor)
|
||||
with mock.patch.object(jrnl,'_write_in_editor', side_effect=mock_editor_launch(parser.config_override['editor']), return_value = 'note_contents') as mock_write_in_editor:
|
||||
run(parser)
|
||||
mock_write_in_editor.assert_called_once_with(expected_override)
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue