From 658fb8eb4e51236d1064dc1b159dd9bea0682c53 Mon Sep 17 00:00:00 2001 From: Jonathan van der Steege Date: Sat, 28 May 2022 22:18:23 +0200 Subject: [PATCH] Requested changes PR 1482 --- jrnl/Journal.py | 2 +- tests/bdd/features/file_storage.feature | 12 +++++++++++- tests/data/configs/missing_directory.yaml | 1 + tests/lib/then_steps.py | 12 +++--------- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/jrnl/Journal.py b/jrnl/Journal.py index 6a0920df..5a2f0b5a 100644 --- a/jrnl/Journal.py +++ b/jrnl/Journal.py @@ -434,7 +434,7 @@ def open_journal(journal_name, config, legacy=False): if not config["encrypt"]: if legacy: return LegacyJournal(journal_name, **config).open() - if config["journal"].endswith("/") or config["journal"].endswith("\\"): + if config["journal"].endswith(os.sep): from . import FolderJournal return FolderJournal.Folder(journal_name, **config).open() diff --git a/tests/bdd/features/file_storage.feature b/tests/bdd/features/file_storage.feature index b055c23f..5cb6ba45 100644 --- a/tests/bdd/features/file_storage.feature +++ b/tests/bdd/features/file_storage.feature @@ -31,7 +31,8 @@ Feature: Journals iteracting with the file system in a way that users can see When we run "jrnl -99 --short" Then the output should contain "This is a new entry in my journal" - Scenario: If the directory for a Folder journal ending in a slash ('/' or '\') doesn't exist, then it should be created + @on_posix + Scenario: If the directory for a Folder journal ending in a slash ('/') doesn't exist, then it should be created Given we use the config "missing_directory.yaml" Then the journal "endslash" directory should not exist When we run "jrnl endslash This is a new entry in my journal" @@ -39,6 +40,15 @@ Feature: Journals iteracting with the file system in a way that users can see When we run "jrnl endslash -1" Then the output should contain "This is a new entry in my journal" + @on_win + Scenario: If the directory for a Folder journal ending in a backslash ('\') doesn't exist, then it should be created + Given we use the config "missing_directory.yaml" + Then the journal "endbackslash" directory should not exist + When we run "jrnl endbackslash This is a new entry in my journal" + Then the journal "endbackslash" directory should exist + When we run "jrnl endbackslash -1" + Then the output should contain "This is a new entry in my journal" + Scenario: Creating journal with relative path should update to absolute path Given we use no config When we run "jrnl hello world" and enter diff --git a/tests/data/configs/missing_directory.yaml b/tests/data/configs/missing_directory.yaml index ac25ff9b..acf3fa09 100644 --- a/tests/data/configs/missing_directory.yaml +++ b/tests/data/configs/missing_directory.yaml @@ -6,6 +6,7 @@ highlight: true journals: default: features/journals/missing_directory/simple.journal endslash: features/journals/missing_folder/ + endbackslash: features\journals\missing_folder\ linewrap: 80 tagsymbols: "@" template: false diff --git a/tests/lib/then_steps.py b/tests/lib/then_steps.py index 8292382b..8dc4da71 100644 --- a/tests/lib/then_steps.py +++ b/tests/lib/then_steps.py @@ -214,16 +214,10 @@ def journal_should_not_exist(config_on_disk, should_or_should_not): def directory_should_not_exist(config_on_disk, should_or_should_not, journal_name): scoped_config = scope_config(config_on_disk, journal_name) expected_path = scoped_config["journal"] - + we_should = parse_should_or_should_not(should_or_should_not) dir_exists = os.path.isdir(expected_path) - if should_or_should_not == "should": - assert dir_exists - elif should_or_should_not == "should not": - assert not dir_exists - else: - raise Exception( - "should_or_should_not valid values are 'should' or 'should not'" - ) + + assert dir_exists == we_should @then(parse('the content of file "{file_path}" in the cache should be\n{file_content}'))