mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-10 08:38:32 +02:00
* Encapsulate all multiline strings in triple-quotes in Gherkin files Since pytest-bdd v8.0.0 uses the official Gherkin parser, multiline strings must now be encapsulated by triple-quotes. See: - https://pytest-bdd.readthedocs.io/en/stable/#id2 - https://pytest-bdd.readthedocs.io/en/stable/#docstrings * Remove comments in Gherkin files causing test breakage These comments break the step matching. * Fix compatibility of step-functions matching on multiple lines In pytest-bdd v8.0.0 it is no longer possible to match based on multiple lines, which breaks essentially all steps that support docstrings. Solve this by adding a wrapper-function for each of these instances, that matches the docstring step, and calls the original function. So, what used to be: @then(parse("the output should match\n{regex}")) @then(parse('the output should match "{regex}"')) def output_should_match(regex, cli_run): ... Is now: @then(parse("the output should match")) def output_should_match_docstring(cli_run, docstring): output_should_match(docstring, cli_run) @then(parse('the output should match "{regex}"')) def output_should_match(regex, cli_run): ... There is possibly a way around this that is much better than what I've done here, but this is a start at least. * Update version requirement of pytest-bdd to >=8.0 * Update tox config to match poetry config --------- Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
110 lines
4.6 KiB
Gherkin
110 lines
4.6 KiB
Gherkin
# Copyright © 2012-2023 jrnl contributors
|
|
# License: https://www.gnu.org/licenses/gpl-3.0.html
|
|
|
|
Feature: Implementing Runtime Overrides for Select Configuration Keys
|
|
|
|
Scenario: Override configured editor with built-in input === editor:''
|
|
Given we use the config "basic_encrypted.yaml"
|
|
And we use the password "test" if prompted
|
|
When we run "jrnl --config-override editor ''" and type
|
|
"""
|
|
This is a journal entry
|
|
"""
|
|
Then the stdin prompt should have been called
|
|
And the editor should not have been called
|
|
When we run "jrnl -1"
|
|
Then the output should contain "This is a journal entry"
|
|
|
|
|
|
Scenario: Postconfig commands with overrides
|
|
Given we use the config "basic_encrypted.yaml"
|
|
And we use the password "test" if prompted
|
|
When we run "jrnl --decrypt --config-override highlight false --config-override editor nano"
|
|
Then the config in memory should contain "highlight: false"
|
|
Then the editor should not have been called
|
|
|
|
|
|
Scenario: Override configured linewrap with a value of 23
|
|
Given we use the config "simple.yaml"
|
|
And we use the password "test" if prompted
|
|
When we run "jrnl -2 --config-override linewrap 23 --format fancy"
|
|
Then the output should be
|
|
"""
|
|
┎─────╮2013-06-09 15:39
|
|
┃ My ╘═══════════════╕
|
|
┃ fir st ent ry. │
|
|
┠╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
|
|
┃ Everything is │
|
|
┃ alright │
|
|
┖─────────────────────┘
|
|
┎─────╮2013-06-10 15:40
|
|
┃ Lif ╘═══════════════╕
|
|
┃ e is goo d. │
|
|
┠╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
|
|
┃ But I'm better. │
|
|
┖─────────────────────┘
|
|
"""
|
|
|
|
|
|
Scenario: Override color selections with runtime overrides
|
|
Given we use the config "basic_encrypted.yaml"
|
|
And we use the password "test" if prompted
|
|
When we run "jrnl -1 --config-override colors.body blue"
|
|
Then the config in memory should contain "colors.body: blue"
|
|
|
|
Scenario: Override color selections with --co alias
|
|
Given we use the config "basic_encrypted.yaml"
|
|
And we use the password "test" if prompted
|
|
When we run "jrnl -1 --co colors.body blue"
|
|
Then the config in memory should contain "colors.body: blue"
|
|
|
|
Scenario: Apply multiple config overrides
|
|
Given we use the config "basic_encrypted.yaml"
|
|
And we use the password "test" if prompted
|
|
When we run "jrnl -1 --config-override colors.body green --config-override editor 'nano'"
|
|
Then the config in memory should contain
|
|
"""
|
|
editor: nano
|
|
colors:
|
|
title: none
|
|
body: green
|
|
tags: none
|
|
date: none
|
|
"""
|
|
|
|
|
|
Scenario: Override default journal
|
|
Given we use the config "basic_dayone.yaml"
|
|
And we use the password "test" if prompted
|
|
When we run "jrnl --config-override journals.default features/journals/simple.journal 20 Mar 2000: The rain in Spain comes from clouds"
|
|
Then we should get no error
|
|
When we run "jrnl -3 --config-override journals.default features/journals/simple.journal"
|
|
Then the output should be
|
|
"""
|
|
2000-03-20 09:00 The rain in Spain comes from clouds
|
|
|
|
2013-06-09 15:39 My first entry.
|
|
| Everything is alright
|
|
|
|
2013-06-10 15:40 Life is good.
|
|
| But I'm better.
|
|
"""
|
|
|
|
|
|
Scenario: Make an entry into an overridden journal
|
|
Given we use the config "basic_dayone.yaml"
|
|
And we use the password "test" if prompted
|
|
When we run "jrnl --config-override journals.temp features/journals/simple.journal temp Sep 06 1969: @say Ni"
|
|
Then we should get no error
|
|
And the output should contain "Entry added"
|
|
When we run "jrnl --config-override journals.temp features/journals/simple.journal temp -3"
|
|
Then the output should be
|
|
"""
|
|
1969-09-06 09:00 @say Ni
|
|
|
|
2013-06-09 15:39 My first entry.
|
|
| Everything is alright
|
|
|
|
2013-06-10 15:40 Life is good.
|
|
| But I'm better.
|
|
"""
|