make format

This commit is contained in:
Suhas 2021-01-28 08:40:28 -05:00
parent 983c9c8c4b
commit 528ce1efe2
5 changed files with 48 additions and 44 deletions

View file

@ -36,7 +36,7 @@ Feature: Implementing Runtime Overrides for Select Configuration Keys
@skip_win @skip_win
Scenario: Apply multiple config overrides Scenario: Apply multiple config overrides
Given we use the config "tiny.yaml" Given we use the config "tiny.yaml"
When we run jrnl with -1 --config-override colors.body:green,editor:"nano" When we run jrnl with -1 --config-override colors.body:green, editor:"nano"
Then the runtime config should have colors.body set to green Then the runtime config should have colors.body set to green
And the runtime config should have editor set to nano And the runtime config should have editor set to nano

View file

@ -1,5 +1,3 @@
from tests.test_config import expected_override
from jrnl.editor import get_text_from_stdin
from jrnl.jrnl import run from jrnl.jrnl import run
from jrnl.os_compat import split_args from jrnl.os_compat import split_args
from unittest import mock from unittest import mock
@ -12,16 +10,18 @@ import yaml
from yaml.loader import FullLoader from yaml.loader import FullLoader
import jrnl import jrnl
def _mock_time_parse(context): def _mock_time_parse(context):
original_parse = jrnl.time.parse original_parse = jrnl.time.parse
if "now" not in context: if "now" not in context:
return original_parse return original_parse
def wrapper(input, *args, **kwargs): def wrapper(input, *args, **kwargs):
input = context.now if input == "now" else input input = context.now if input == "now" else input
return original_parse(input, *args, **kwargs) return original_parse(input, *args, **kwargs)
return wrapper return wrapper
@given("we use the config {config_file}") @given("we use the config {config_file}")
@ -73,15 +73,13 @@ def config_override(context, key_as_dots: str, override_value: str):
@then("the editor {editor} should have been called") @then("the editor {editor} should have been called")
def editor_override(context, editor): def editor_override(context, editor):
def _mock_write_in_editor(config): def _mock_write_in_editor(config):
editor = config['editor'] editor = config["editor"]
journal = 'features/journals/journal.jrnl' journal = "features/journals/journal.jrnl"
context.tmpfile = journal context.tmpfile = journal
print("%s has been launched"%editor) print("%s has been launched" % editor)
return journal return journal
# fmt: off # fmt: off
# see: https://github.com/psf/black/issues/664 # see: https://github.com/psf/black/issues/664
with \ with \
@ -105,17 +103,24 @@ def editor_override(context, editor):
context.exit_status = e.code context.exit_status = e.code
# fmt: on # fmt: on
@then("the stdin prompt must be launched")
def override_editor_to_use_stdin(context):
try: @then("the stdin prompt must be launched")
with \ def override_editor_to_use_stdin(context):
mock.patch('sys.stdin.read', return_value='Zwei peanuts walk into a bar und one of zem was a-salted')as mock_stdin_read, \
mock.patch("jrnl.install.load_or_install_jrnl", return_value=context.cfg), \ try:
mock.patch("jrnl.Journal.open_journal", spec=False, return_value='features/journals/journal.jrnl'): with mock.patch(
"sys.stdin.read",
return_value="Zwei peanuts walk into a bar und one of zem was a-salted",
) as mock_stdin_read, mock.patch(
"jrnl.install.load_or_install_jrnl", return_value=context.cfg
), mock.patch(
"jrnl.Journal.open_journal",
spec=False,
return_value="features/journals/journal.jrnl",
):
run(context.parser) run(context.parser)
context.exit_status = 0 context.exit_status = 0
mock_stdin_read.assert_called_once() mock_stdin_read.assert_called_once()
except SystemExit as e : except SystemExit as e:
context.exit_status = e.code context.exit_status = e.code

View file

@ -4,7 +4,6 @@
import argparse import argparse
import re import re
import textwrap import textwrap
import json
from .commands import postconfig_decrypt from .commands import postconfig_decrypt
from .commands import postconfig_encrypt from .commands import postconfig_encrypt
@ -24,11 +23,11 @@ def deserialize_config_args(input: str) -> dict:
for _p in _kvpairs: for _p in _kvpairs:
l, r = _p.strip().split(":") l, r = _p.strip().split(":")
r = r.strip() r = r.strip()
if r.isdigit(): if r.isdigit():
r = int(r) r = int(r)
elif r.lower() == "true": elif r.lower() == "true":
r = True r = True
elif r.lower() == "false": elif r.lower() == "false":
r = False r = False
runtime_modifications[l] = r runtime_modifications[l] = r
return runtime_modifications return runtime_modifications

View file

@ -2,7 +2,6 @@ import shlex
import pytest import pytest
import mock import mock
import yaml
from jrnl.args import parse_args from jrnl.args import parse_args
from jrnl.jrnl import run from jrnl.jrnl import run

View file

@ -1,4 +1,3 @@
from features.steps.override import config_override
import shlex import shlex
import pytest import pytest
@ -6,6 +5,7 @@ import pytest
from jrnl.args import parse_args from jrnl.args import parse_args
from jrnl.args import deserialize_config_args from jrnl.args import deserialize_config_args
def cli_as_dict(str): def cli_as_dict(str):
cli = shlex.split(str) cli = shlex.split(str)
args = parse_args(cli) args = parse_args(cli)
@ -206,6 +206,7 @@ def test_version_alone():
assert cli_as_dict("--version") == expected_args(preconfig_cmd=preconfig_version) assert cli_as_dict("--version") == expected_args(preconfig_cmd=preconfig_version)
class TestDeserialization: class TestDeserialization:
@pytest.mark.parametrize( @pytest.mark.parametrize(
"input_str", "input_str",
@ -215,8 +216,7 @@ class TestDeserialization:
'editor:"nano", colors.title:blue, default:"/tmp/eg\ g.txt"', 'editor:"nano", colors.title:blue, default:"/tmp/eg\ g.txt"',
], ],
) )
def test_deserialize_multiword_strings(self,input_str): def test_deserialize_multiword_strings(self, input_str):
runtime_config = deserialize_config_args(input_str) runtime_config = deserialize_config_args(input_str)
assert runtime_config.__class__ == dict assert runtime_config.__class__ == dict
@ -224,18 +224,19 @@ class TestDeserialization:
assert "colors.title" in runtime_config.keys() assert "colors.title" in runtime_config.keys()
assert "default" in runtime_config.keys() assert "default" in runtime_config.keys()
def test_deserialize_int(self): def test_deserialize_int(self):
input = 'linewrap: 23, default_hour: 19' input = "linewrap: 23, default_hour: 19"
runtime_config = deserialize_config_args(input) runtime_config = deserialize_config_args(input)
assert runtime_config['linewrap'] == 23 assert runtime_config["linewrap"] == 23
assert runtime_config['default_hour'] == 19 assert runtime_config["default_hour"] == 19
def test_deserialize_multiple_datatypes(self): def test_deserialize_multiple_datatypes(self):
input = 'linewrap: 23, encrypt: false, editor:"vi -c startinsert"' input = 'linewrap: 23, encrypt: false, editor:"vi -c startinsert"'
cfg = deserialize_config_args(input) cfg = deserialize_config_args(input)
assert cfg['encrypt'] == False assert cfg["encrypt"] == False
assert cfg['linewrap'] == 23 assert cfg["linewrap"] == 23
assert cfg['editor'] == '"vi -c startinsert"' assert cfg["editor"] == '"vi -c startinsert"'
def test_editor_override(): def test_editor_override():