From 51735da1be09a0ba9073f74285f646f8b33548f3 Mon Sep 17 00:00:00 2001 From: Micah Jerome Ellison Date: Mon, 6 Sep 2021 14:03:59 -0700 Subject: [PATCH] Begin migrating/rewording --cf tests in pytest-bdd. Uses current directory instead of deep directory structure, but requires a given for each config file referenced --- tests/bdd/features/config_file.feature | 77 ++++++++++++++++++++++++++ tests/bdd/test_features.py | 1 + tests/lib/given_steps.py | 2 +- 3 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 tests/bdd/features/config_file.feature diff --git a/tests/bdd/features/config_file.feature b/tests/bdd/features/config_file.feature new file mode 100644 index 00000000..6a52bfcf --- /dev/null +++ b/tests/bdd/features/config_file.feature @@ -0,0 +1,77 @@ +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 + 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 + + # This test is breaking because multiple.yaml is "upgrading" and overwriting basic_onefile.yaml in the process + # Backup your personal config before manually reproducing this! It will replace + # your config file with the upgraded form of multiple.yaml (which is the bug) + 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" + When we run "jrnl --cf multiple.yaml this goes to default" + Given we use the config "basic_onefile.yaml" + When we run "jrnl -1" + Then the output should not contain "this goes to default" + When we run "jrnl --cf multiple.yaml -1" + Then the output should contain "this goes to default" + + # # The rest of these tests haven't changed except for the given steps. Each needs + # # to be re-worked + # Scenario: Write to specified journal using an alternate config + # Given we use the config "multiple.yaml" + # Given we use the config "basic_onefile.yaml" + # When we run "jrnl work --cf features/data/configs/alternate.yaml a long day in the office" + # Then journal "default" should have 2 entries + # And journal "work" should have 1 entry + + # 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" + # When we run "jrnl --cf features/data/configs/alternate.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" + # When we run "jrnl work --cf features/data/configs/alternate.yaml 23 july 2012: a long day in the office" + # Then journal "default" should have 2 entries + # And journal "work" should have 1 entry + # And journal "work" 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" + # When we run "jrnl work --cf features/data/configs/alternate.yaml : a long day in the office" + # Then journal "default" should have 2 entries + # And journal "work" should have 1 entry + # And journal "work" 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" + # Then journal "ideas" should not exist + # When we run "jrnl ideas --cf features/data/configs/alternate.yaml 23 july 2012: sell my junk on ebay and make lots of money" + # Then journal "ideas" should have 1 entry + + # Scenario: Don't crash if no default journal is specified using an alternate config + # Given we use the config "multiple.yaml" + # Given we use the config "basic_onefile.yaml" + # When we run "jrnl --cf features/data/configs/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" + # When we run "jrnl new_encrypted --cf features/data/configs/alternate.yaml Adding first entry" and enter + # """ + # these three eyes + # these three eyes + # n + # """ + # Then we should see the message "Encrypted journal 'new_encrypted' created" + diff --git a/tests/bdd/test_features.py b/tests/bdd/test_features.py index b824df39..1c09a89b 100644 --- a/tests/bdd/test_features.py +++ b/tests/bdd/test_features.py @@ -1,6 +1,7 @@ from pytest_bdd import scenarios scenarios("features/build.feature") +scenarios("features/config_file.feature") scenarios("features/core.feature") scenarios("features/datetime.feature") scenarios("features/delete.feature") diff --git a/tests/lib/given_steps.py b/tests/lib/given_steps.py index 649d44c5..f3b73778 100644 --- a/tests/lib/given_steps.py +++ b/tests/lib/given_steps.py @@ -93,7 +93,7 @@ def we_use_the_config(config_file, temp_dir, working_dir): # Copy all of the journals over journal_source = os.path.join(working_dir, "data", "journals") journal_dest = os.path.join(temp_dir.name, "features", "journals") - shutil.copytree(journal_source, journal_dest) + shutil.copytree(journal_source, journal_dest, dirs_exist_ok=True) # @todo get rid of this by using default config values # merge in version number