mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-06-28 13:36:14 +02:00
Add more steps to pytest
, fully remove behave
(#1347)
* update yaml loader to new method * Add config overrides steps to pytest This requires some patching around the config object, which now happens in every test. Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com> * udpate docs for new tests * remove behave from deps * remove feature dir from flake8 checks * udpate lock file * disable pip version check (it keeps spamming the pipeline) Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
This commit is contained in:
parent
a98f3f78af
commit
44edb9bdee
112 changed files with 264 additions and 4814 deletions
|
@ -6,6 +6,8 @@ from jrnl.override import _get_key_and_value_from_pair
|
|||
from jrnl.override import _recursively_apply
|
||||
from jrnl.override import apply_overrides
|
||||
|
||||
from argparse import Namespace
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def minimal_config():
|
||||
|
@ -18,31 +20,61 @@ def minimal_config():
|
|||
return cfg
|
||||
|
||||
|
||||
def expected_args(overrides):
|
||||
default_args = {
|
||||
"contains": None,
|
||||
"debug": False,
|
||||
"delete": False,
|
||||
"edit": False,
|
||||
"end_date": None,
|
||||
"today_in_history": False,
|
||||
"month": None,
|
||||
"day": None,
|
||||
"year": None,
|
||||
"excluded": [],
|
||||
"export": False,
|
||||
"filename": None,
|
||||
"limit": None,
|
||||
"on_date": None,
|
||||
"preconfig_cmd": None,
|
||||
"postconfig_cmd": None,
|
||||
"short": False,
|
||||
"starred": False,
|
||||
"start_date": None,
|
||||
"strict": False,
|
||||
"tags": False,
|
||||
"text": [],
|
||||
"config_override": [],
|
||||
}
|
||||
return Namespace(**{**default_args, **overrides})
|
||||
|
||||
|
||||
def test_apply_override(minimal_config):
|
||||
overrides = [["editor", "nano"]]
|
||||
apply_overrides(overrides, minimal_config)
|
||||
overrides = {"config_override": [["editor", "nano"]]}
|
||||
apply_overrides(expected_args(overrides), minimal_config)
|
||||
assert minimal_config["editor"] == "nano"
|
||||
|
||||
|
||||
def test_override_dot_notation(minimal_config):
|
||||
overrides = [["colors.body", "blue"]]
|
||||
|
||||
cfg = apply_overrides(overrides=overrides, base_config=minimal_config)
|
||||
assert cfg["colors"] == {"body": "blue", "date": "green"}
|
||||
overrides = {"config_override": [["colors.body", "blue"]]}
|
||||
apply_overrides(expected_args(overrides), minimal_config)
|
||||
assert minimal_config["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
|
||||
overrides = {
|
||||
"config_override": [
|
||||
["colors.title", "magenta"],
|
||||
["editor", "nano"],
|
||||
["journals.burner", "/tmp/journals/burner.jrnl"],
|
||||
]
|
||||
}
|
||||
|
||||
cfg = apply_overrides(overrides, minimal_config)
|
||||
assert cfg["editor"] == "nano"
|
||||
assert cfg["colors"]["title"] == "magenta"
|
||||
assert "burner" in cfg["journals"]
|
||||
assert cfg["journals"]["burner"] == "/tmp/journals/burner.jrnl"
|
||||
actual = apply_overrides(expected_args(overrides), minimal_config)
|
||||
assert actual["editor"] == "nano"
|
||||
assert actual["colors"]["title"] == "magenta"
|
||||
assert "burner" in actual["journals"]
|
||||
assert actual["journals"]["burner"] == "/tmp/journals/burner.jrnl"
|
||||
|
||||
|
||||
def test_recursively_apply():
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue