From 8016ab1bad68a9dfaee1eeef6be89c42a52e91b8 Mon Sep 17 00:00:00 2001 From: Jonathan Wren Date: Sat, 25 Sep 2021 13:17:47 -0700 Subject: [PATCH] add newer tests to pytest (from behave) --- tests/bdd/features/format.feature | 44 +++++++++++++ tests/bdd/features/override.feature | 96 +++++++++++++++++++++++++++++ tests/bdd/test_features.py | 1 + 3 files changed, 141 insertions(+) create mode 100644 tests/bdd/features/override.feature diff --git a/tests/bdd/features/format.feature b/tests/bdd/features/format.feature index b9e2e384..eabdaea8 100644 --- a/tests/bdd/features/format.feature +++ b/tests/bdd/features/format.feature @@ -1,5 +1,33 @@ Feature: Custom formats + Scenario Outline: Short printing via --format flag + Given We use the config "" + And we use the password "test" if prompted + When we run "jrnl --format short -3" + Then we should get no error + + Examples: configs + | config_file | + | basic_onefile.yaml | + | basic_encrypted.yaml | + | basic_folder.yaml | + | basic_dayone.yaml | + + + Scenario Outline: Pretty Printing aka the Default + Given We use the config "" + And we use the password "test" if prompted + When we run "jrnl --format pretty -3" + Then we should get no error + + Examples: configs + | config_file | + | basic_onefile.yaml | + | basic_encrypted.yaml | + | basic_folder.yaml | + | basic_dayone.yaml | + + Scenario Outline: JSON format Given we use the config "" And we use the password "test" if prompted @@ -296,6 +324,22 @@ Feature: Custom formats | basic_folder.yaml | | basic_dayone.yaml | + + Scenario Outline: Export fancy with small linewrap + Given we use the config "" + And we use the password "test" if prompted + When we run "jrnl --config-override linewrap 35 --format fancy -3" + Then we should get no error + And the output should be 35 columns wide + + Examples: configs + | config_file | + | basic_onefile.yaml | + | basic_encrypted.yaml | + | basic_folder.yaml | + | basic_dayone.yaml | + + @todo Scenario Outline: Exporting fancy # Needs better emoji support diff --git a/tests/bdd/features/override.feature b/tests/bdd/features/override.feature new file mode 100644 index 00000000..9b875b7b --- /dev/null +++ b/tests/bdd/features/override.feature @@ -0,0 +1,96 @@ +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 ''" + Then the stdin prompt should have been called + + + 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 should have "highlight" set to "bool:false" + And no editor should 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 should have "colors.body" set to "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 should have "colors.body" set to "green" + And the config should have "editor" set to "nano" + + + Scenario Outline: Override configured editor + Given we use the config "basic_encrypted.yaml" + And we use the password "test" if prompted + When we run "jrnl --config-override editor ''" + Then the editor should have been called + Examples: Editor Commands + | editor | + | nano | + | vi -c startinsert | + | code -w | + + + 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 + And we should see the message "Entry added" + 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 we should see the message "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. diff --git a/tests/bdd/test_features.py b/tests/bdd/test_features.py index b824df39..1509e92d 100644 --- a/tests/bdd/test_features.py +++ b/tests/bdd/test_features.py @@ -9,6 +9,7 @@ scenarios("features/file_storage.feature") scenarios("features/format.feature") scenarios("features/import.feature") scenarios("features/multiple_journals.feature") +scenarios("features/override.feature") scenarios("features/password.feature") scenarios("features/search.feature") scenarios("features/star.feature")