mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-07-05 07:56:14 +02:00
move override behave tests out of core
This commit is contained in:
parent
ededf23afa
commit
d348dbd55e
3 changed files with 84 additions and 55 deletions
|
@ -14,6 +14,7 @@ from behave import then
|
|||
from behave import when
|
||||
import keyring
|
||||
import mock
|
||||
|
||||
import toml
|
||||
import yaml
|
||||
|
||||
|
@ -215,60 +216,6 @@ def open_editor_and_enter(context, method, text=""):
|
|||
# fmt: on
|
||||
|
||||
|
||||
@then("the runtime config should have {key_as_dots} set to {override_value}")
|
||||
def config_override(context, key_as_dots: str, override_value: str):
|
||||
with open(context.config_path) as f:
|
||||
loaded_cfg = yaml.load(f, Loader=yaml.FullLoader)
|
||||
loaded_cfg["journal"] = "features/journals/simple.journal"
|
||||
# base_cfg = loaded_cfg.copy()
|
||||
|
||||
def _mock_callback(**args):
|
||||
print("callback executed")
|
||||
|
||||
# fmt: off
|
||||
try:
|
||||
with \
|
||||
mock.patch.object(jrnl.override,"recursively_apply",wraps=jrnl.override.recursively_apply) as mock_recurse, \
|
||||
patch("jrnl.config.get_config_path", side_effect=lambda: context.config_path), \
|
||||
patch("jrnl.install.get_config_path", side_effect=lambda: context.config_path) \
|
||||
:
|
||||
cli(['-1','--config-override', '{"%s": "%s"}'%(key_as_dots,override_value)])
|
||||
mock_recurse.assert_called()
|
||||
|
||||
|
||||
except SystemExit as e :
|
||||
context.exit_status = e.code
|
||||
# fmt: on
|
||||
|
||||
|
||||
@then("the editor {editor} should have been called")
|
||||
def editor_override(context, editor):
|
||||
def _mock_editor(command_and_journal_file):
|
||||
editor = command_and_journal_file[0]
|
||||
tmpfile = command_and_journal_file[-1]
|
||||
context.tmpfile = tmpfile
|
||||
print("%s has been launched" % editor)
|
||||
return tmpfile
|
||||
|
||||
# fmt: off
|
||||
# see: https://github.com/psf/black/issues/664
|
||||
with \
|
||||
patch("subprocess.call", side_effect=_mock_editor) as mock_editor, \
|
||||
patch("sys.stdin.isatty", return_value=True), \
|
||||
patch("jrnl.time.parse", side_effect=_mock_time_parse(context)), \
|
||||
patch("jrnl.config.get_config_path", side_effect=lambda: context.config_path), \
|
||||
patch("jrnl.install.get_config_path", side_effect=lambda: context.config_path) \
|
||||
:
|
||||
try :
|
||||
cli(['--config-override','{"editor": "%s"}'%editor])
|
||||
context.exit_status = 0
|
||||
context.editor = mock_editor
|
||||
assert mock_editor.assert_called_once_with(editor, context.tmpfile)
|
||||
except SystemExit as e:
|
||||
context.exit_status = e.code
|
||||
# fmt: on
|
||||
|
||||
|
||||
@then("the editor should have been called")
|
||||
@then("the editor should have been called with {num} arguments")
|
||||
def count_editor_args(context, num=None):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue