From 51e8606f44d7f78159a70fa796746649c886c675 Mon Sep 17 00:00:00 2001 From: Micah Jerome Ellison Date: Sat, 23 Oct 2021 13:47:34 -0700 Subject: [PATCH] Use explicit "given the config exists" for copying config files instead of shoehorning in "given we use the config" twice --- tests/bdd/features/config_file.feature | 36 +++++++++++++------------- tests/lib/given_steps.py | 8 ++++++ 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/tests/bdd/features/config_file.feature b/tests/bdd/features/config_file.feature index 68ed3261..ca9f943a 100644 --- a/tests/bdd/features/config_file.feature +++ b/tests/bdd/features/config_file.feature @@ -1,15 +1,15 @@ Feature: Multiple journals Scenario: Loading an alternate config with two journals - Given we use the config "basic_onefile.yaml" - Given we use the config "multiple.yaml" # Repeating step to ensure both are copied + Given the config "basic_onefile.yaml" exists + And we use the config "multiple.yaml" When we run "jrnl --cf basic_onefile.yaml -999" Then the output should not contain "My first entry" # from multiple.yaml And the output should contain "Lorem ipsum" # from basic_onefile.yaml Scenario: Write to default journal by default using an alternate config - Given we use the config "multiple.yaml" - Given we use the config "basic_onefile.yaml" + Given the config "multiple.yaml" exists + And we use the config "basic_onefile.yaml" When we run "jrnl --cf multiple.yaml this goes to default" When we run "jrnl -1" Then the output should not contain "this goes to default" @@ -17,8 +17,8 @@ Feature: Multiple journals Then the output should contain "this goes to default" Scenario: Write to specified journal using an alternate config - Given we use the config "multiple.yaml" - Given we use the config "basic_onefile.yaml" + Given the config "multiple.yaml" exists + And we use the config "basic_onefile.yaml" When we run "jrnl work --cf multiple.yaml a long day in the office" And we run "jrnl default --cf multiple.yaml -1" Then the output should contain "But I'm better" @@ -26,14 +26,14 @@ Feature: Multiple journals Then the output should contain "a long day in the office" Scenario: Tell user which journal was used using an alternate config - Given we use the config "multiple.yaml" - Given we use the config "basic_onefile.yaml" + Given the config "multiple.yaml" exists + And we use the config "basic_onefile.yaml" When we run "jrnl --cf multiple.yaml work a long day in the office" Then we should see the message "Entry added to work journal" Scenario: Write to specified journal with a timestamp using an alternate config - Given we use the config "multiple.yaml" - Given we use the config "basic_onefile.yaml" + Given the config "multiple.yaml" exists + And we use the config "basic_onefile.yaml" When we run "jrnl work --cf multiple.yaml 23 july 2012: a long day in the office" And we run "jrnl --cf multiple.yaml -1" Then the output should contain "But I'm better" @@ -42,8 +42,8 @@ Feature: Multiple journals And the output should contain "2012-07-23" Scenario: Write to specified journal without a timestamp but with colon using an alternate config - Given we use the config "multiple.yaml" - Given we use the config "basic_onefile.yaml" + Given the config "multiple.yaml" exists + And we use the config "basic_onefile.yaml" When we run "jrnl work --cf multiple.yaml : a long day in the office" And we run "jrnl --cf multiple.yaml -1" Then the output should contain "But I'm better" @@ -51,8 +51,8 @@ Feature: Multiple journals Then the output should contain "a long day in the office" Scenario: Create new journals as required using an alternate config - Given we use the config "multiple.yaml" - Given we use the config "basic_onefile.yaml" + Given the config "multiple.yaml" exists + And we use the config "basic_onefile.yaml" When we run "jrnl ideas -1" Then the output should be empty When we run "jrnl ideas --cf multiple.yaml 23 july 2012: sell my junk on ebay and make lots of money" @@ -61,14 +61,14 @@ Feature: Multiple journals Then the output should contain "sell my junk on ebay and make lots of money" Scenario: Don't crash if no default journal is specified using an alternate config - Given we use the config "bug343.yaml" - Given we use the config "basic_onefile.yaml" + Given the config "bug343.yaml" exists + And we use the config "basic_onefile.yaml" When we run "jrnl --cf bug343.yaml a long day in the office" Then we should see the message "No default journal configured" Scenario: Don't crash if no file exists for a configured encrypted journal using an alternate config - Given we use the config "multiple.yaml" - Given we use the config "basic_onefile.yaml" + Given the config "multiple.yaml" exists + And we use the config "basic_onefile.yaml" When we run "jrnl new_encrypted --cf multiple.yaml Adding first entry" and enter these three eyes these three eyes diff --git a/tests/lib/given_steps.py b/tests/lib/given_steps.py index e270fb7e..2d182d5a 100644 --- a/tests/lib/given_steps.py +++ b/tests/lib/given_steps.py @@ -108,6 +108,14 @@ def we_use_the_config(config_file, temp_dir, working_dir): return config_dest +@given(parse('the config "{config_file}" exists'), target_fixture="config_path") +@given('the config "" exists', target_fixture="config_path") +def config_exists(config_file, temp_dir, working_dir): + config_source = os.path.join(working_dir, "data", "configs", config_file) + config_dest = os.path.join(temp_dir.name, config_file) + shutil.copy2(config_source, config_dest) + + @given(parse('we use the password "{pw}" if prompted'), target_fixture="password") def use_password_forever(pw): return pw