mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-10 16:48:31 +02:00
- initial pass through to rework encryption into separate module - little more cleanup - rename function, fix some linting issues - more cleaning - fix password bug in encryption - fix linting issue - more cleanup - move prompt into prompt.py - more cleanup - update the upgrade process for new encryption classes - general cleanup - turn into enum instead of strings - store status code so tests don't fail - standardize the load and store methods in journals - get rid of old PlainJournal class - typing cleanup - more cleanup - format - fix linting issue - Fix obscure Windows line ending issue with decode See https://bugs.python.org/issue40863 - fix for python 3.11 - add more typing - don't use class variables because that's not what we want - fix more type hints - jrnlv1 encryption doesn't support encryption anymore (it's deprecated) - keep logic for password attemps inside the class that uses it - take out old line of code - add some more logging - update logging statements - clean up logging statements - run linters - fix typo - Fix for new test from develop branch There was a new test added for re-encrypting a journal. This updates the refactor to match the old (previously untested) behavior of jrnl. Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
57 lines
1.6 KiB
Python
57 lines
1.6 KiB
Python
# Copyright © 2012-2022 jrnl contributors
|
|
# License: https://www.gnu.org/licenses/gpl-3.0.html
|
|
|
|
import os
|
|
from contextlib import ExitStack
|
|
|
|
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>[^"]*)")'
|
|
# Note: A line with only a raw newline r'\n' is treated as
|
|
# an empty line of input internally for testing purposes.
|
|
|
|
|
|
@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_run["status"] = cli() or 0
|
|
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
|