import pytest from jrnl.override import apply_overrides, recursively_apply @pytest.fixture() def minimal_config(): cfg = { "colors":{ "body":"red", "date":"green" }, "default":"/tmp/journal.jrnl", "editor":"vim" } yield cfg def test_apply_override(minimal_config): config = minimal_config.copy() overrides = { 'editor':'nano' } config = apply_overrides(overrides, config) assert config['editor']=='nano' def test_override_dot_notation(minimal_config): cfg = minimal_config.copy() overrides = { "colors.body": "blue" } cfg = apply_overrides(overrides=overrides, base_config=cfg) assert cfg["colors"] == {"body": "blue", "date":"green"} def test_recursive_override(minimal_config): cfg = { "colors": { "body": "red", "title": "green" } } cfg = recursively_apply(cfg,["colors",'body'],"blue") assert cfg["colors"]["body"] == "blue"