unittest multiple overrides

This commit is contained in:
Suhas 2021-01-25 08:52:50 -05:00
parent 36623c1100
commit bd61a78fba
3 changed files with 28 additions and 2 deletions

View file

@ -52,7 +52,7 @@ def config_override(context, key_as_dots: str, override_value: str):
:
run(context.parser)
assert mock_recurse.call_count == 2
assert mock_recurse.call_count >= 2
mock_recurse.call_args_list = expected_call_args_list
except SystemExit as e :

View file

@ -9,6 +9,10 @@ def minimal_config():
"colors": {"body": "red", "date": "green"},
"default": "/tmp/journal.jrnl",
"editor": "vim",
"journals": {
"default": "/tmp/journals/journal.jrnl"
}
}
yield cfg
@ -26,6 +30,17 @@ def test_override_dot_notation(minimal_config):
cfg = apply_overrides(overrides=overrides, base_config=cfg)
assert cfg["colors"] == {"body": "blue", "date": "green"}
def test_multiple_overrides(minimal_config):
overrides = {
"colors.title": "magenta",
"editor": "nano",
"journals.burner": "/tmp/journals/burner.jrnl"
} # as returned by parse_args, saved in parser.config_override
cfg = apply_overrides(overrides, minimal_config.copy())
assert cfg["editor"] == "nano"
assert cfg["colors"]["title"] == "magenta"
assert "burner" in cfg["journals"]
assert cfg["journals"]["burner"] == "/tmp/journals/burner.jrnl"
def test_recursively_apply():
cfg = {"colors": {"body": "red", "title": "green"}}
@ -34,6 +49,6 @@ def test_recursively_apply():
def test_get_config_node(minimal_config):
assert len(minimal_config.keys()) == 3
assert len(minimal_config.keys()) == 4
assert _get_config_node(minimal_config, "editor") == "vim"
assert _get_config_node(minimal_config, "display_format") == None

View file

@ -1,3 +1,4 @@
from features.steps.override import config_override
import shlex
import pytest
@ -218,6 +219,16 @@ def test_color_override():
'--config-override \'{"colors.body": "blue"}\''
) == expected_args(config_override={"colors.body": "blue"})
def test_multiple_overrides():
assert cli_as_dict(
'--config-override \'{"colors.title": "green", "editor":"", "journal.scratchpad": "/tmp/scratchpad"}\''
) == expected_args(
config_override={
"colors.title": "green",
"journal.scratchpad": "/tmp/scratchpad",
"editor": ""
}
)
# @see https://github.com/jrnl-org/jrnl/issues/520
@pytest.mark.parametrize(