mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-10 00:28:31 +02:00
* fix missed statement from last PR * replace print statement for adding an entry to a journal * clean up linting and format * change print statement over to new print_msg function * make print_msg always print to stderr * change print statement over to new print_msg function * update importer to use new message function * update yaml format to use new message function * code cleanup * update yaml format to use new message function * update yaml format to use new exception handling * update Journal class to use new message function * update install module to use new message function * update config module to use new message function * update upgrade module to properly use new message and exception handling * fix typo * update upgrade module to use new message handling * update welcome message to use new handling * update upgrade module to use new message handling * update upgrade module journal summaries to use new message handling * take out old code * update upgrade module to use new message handling * update upgrade module to use new message handling * update more modules to use new message handling * take out old comment * update deprecated_cmd to use new message handling * update text_exporter with new message handling, get rid of old color constants * get rid of hardcoded text * whitespace changes * rework MsgType into MsgStyle so messages can have different styles * add comment * Move around code to separate concerns of each function a bit more * update create_password and yesno prompt functions for new messaging * fix missing newline for keyboard interrupts * fix misc linting * fix bug with panel titles always showing 'error' after one error * fix missing import * update debug output after uncaught exception * update exception for new exception handling * rewrite yesno function to use new centralized messages * reduce the debug output slightly * clean up print_msgs function * clean up create_password function * clean up misc linting * rename screen_input to hide_input to be more clear * update encrypted journal prompt to use new messaging functionality * fix typo in message key * move rich console into function so we can mock properly * update password mock to use rich console instead of getpass * add more helpful output to then step * fix test by updating expected output * update message to use new functionality * rework mocks in test suite for new messaging functionality * fix linting issue * fix more tests * fix more tests * fix more tests * fix more tests * fix merge bug * update prompt_action_entries to use new messaging functionality * Add new input_method "type" This does the same thing as input_method "pipe" but is more clear what it's doing (typing text into the builtin composer) * get rid of old commented code * get rid of unused code * move some files around Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
55 lines
1.5 KiB
Python
55 lines
1.5 KiB
Python
# Copyright (C) 2012-2021 jrnl contributors
|
|
# License: https://www.gnu.org/licenses/gpl-3.0.html
|
|
|
|
from contextlib import ExitStack
|
|
import os
|
|
|
|
from pytest_bdd import when
|
|
from pytest_bdd.parsers import parse
|
|
from pytest_bdd.parsers import re
|
|
|
|
from jrnl.cli import cli
|
|
|
|
|
|
@when(parse('we change directory to "{directory_name}"'))
|
|
def when_we_change_directory(directory_name):
|
|
if not os.path.isdir(directory_name):
|
|
os.mkdir(directory_name)
|
|
|
|
os.chdir(directory_name)
|
|
|
|
|
|
# These variables are used in the `@when(re(...))` section below
|
|
command = '(?P<command>[^"]*)'
|
|
input_method = "(?P<input_method>enter|pipe|type)"
|
|
all_input = '("(?P<all_input>[^"]*)")'
|
|
|
|
|
|
@when(parse('we run "jrnl {command}" and {input_method}\n{all_input}'))
|
|
@when(re(f'we run "jrnl ?{command}" and {input_method} {all_input}'))
|
|
@when(parse('we run "jrnl {command}"'))
|
|
@when('we run "jrnl"')
|
|
def we_run_jrnl(cli_run, capsys, keyring):
|
|
from keyring import set_keyring
|
|
|
|
set_keyring(keyring)
|
|
|
|
with ExitStack() as stack:
|
|
mocks = cli_run["mocks"]
|
|
factories = cli_run["mock_factories"]
|
|
|
|
for id in factories:
|
|
mocks[id] = stack.enter_context(factories[id]())
|
|
|
|
try:
|
|
cli()
|
|
except StopIteration:
|
|
# This happens when input is expected, but don't have any input left
|
|
pass
|
|
except SystemExit as e:
|
|
cli_run["status"] = e.code
|
|
|
|
captured = capsys.readouterr()
|
|
|
|
cli_run["stdout"] = captured.out
|
|
cli_run["stderr"] = captured.err
|