Add ability to pass template path with --template

Update jrnl/args.py
This commit is contained in:
Aaron Lichtman 2023-01-23 04:27:42 -08:00
parent 17c987c605
commit 1d9ca765f9
No known key found for this signature in database
GPG key ID: D046D019DC745EDA
10 changed files with 217 additions and 64 deletions

View file

@ -17,3 +17,74 @@ Feature: Using templates
| basic_folder.yaml |
| basic_dayone.yaml |
Scenario Outline: Templated entry should not be saved if template is unchanged
Given we use the config "<config_file>"
And we use the password "test" if prompted
When we run "jrnl --config-override template features/templates/basic.template"
Then the output should contain "No entry to save, because the template was not changed"
Examples: configs
| config_file |
| basic_onefile.yaml |
| basic_encrypted.yaml |
| basic_folder.yaml |
| basic_dayone.yaml |
Scenario Outline: --template nonexistent_file should throw an error
Given we use the config "<config_file>"
And we use the password "test" if prompted
When we run "jrnl --template this_template_does_not_exist.template"
Then we should get an error
Then the error output should contain "Unable to find a template file based on the passed arg"
Examples: configs
| config_file |
| basic_onefile.yaml |
| basic_encrypted.yaml |
| basic_folder.yaml |
| basic_dayone.yaml |
Scenario Outline: --template local_filepath should be used in new entry
Given we use the config "<config_file>"
And we use the password "test" if prompted
When we run "jrnl --template features/templates/basic.template"
And we run "jrnl -1"
Then the output should contain "This text is in the basic template"
Examples: configs
| config_file |
| basic_onefile.yaml |
| basic_encrypted.yaml |
| basic_folder.yaml |
| basic_dayone.yaml |
@todo
Scenario Outline: --template absolute_filepath should be used in new entry
Given we use the config "<config_file>"
And we use the password "test" if prompted
When we run "jrnl --template /tmp/basic.template"
And we run "jrnl -1"
Then the output should contain "This text is in the basic template"
Examples: configs
| config_file |
| basic_onefile.yaml |
| basic_encrypted.yaml |
| basic_folder.yaml |
| basic_dayone.yaml |
@todo
Scenario Outline: --template file_in_XDG_templates_dir should be used in new entry
Given we use the config "<config_file>"
And we use the password "test" if prompted
When we run "jrnl --template basic.template"
And we run "jrnl -1"
Then the output should contain "This text is in the basic template"
Examples: configs
| config_file |
| basic_onefile.yaml |
| basic_encrypted.yaml |
| basic_folder.yaml |
| basic_dayone.yaml |

View file

@ -23,6 +23,11 @@ def should_get_no_error(cli_run):
assert cli_run["status"] == 0, cli_run["status"]
@then("we should get an error")
def should_get_an_error(cli_run):
assert cli_run["status"] != 0, cli_run["status"]
@then(parse("the output should match\n{regex}"))
@then(parse('the output should match "{regex}"'))
def output_should_match(regex, cli_run):

View file

@ -39,6 +39,7 @@ def expected_args(**kwargs):
"start_date": None,
"strict": False,
"tags": False,
"template": None,
"text": [],
"config_override": [],
"config_file_path": "",