Allow combinations of --change-time, --delete, and --edit while correctly counting the number of entries affected (#1669)

* Remove search mode conditional that added explicit tag search behavior
* Fix failing change-time test by using same method signature as base journal class
* Fix user input mock - was not appropriately checking return value
* Clean up controller
  - streamline `run` function in `controller.py`
  - add debug logging
  - fix unnecessary import of Journal class (only needed for typing)
  - standardize summary display across different actions
* Add currently-failing test conditions for count messages when changing time and deleting
* Don't show summary if no entries found and prevent extra line break when no entries found by short-circuiting display method
* Track found entry count and remove incorrect modified stat logic
* Track journal entry deletion consistently
* Remove unneeded exception when editor is empty and fix test that was testing incorrect message
* Correct entry edit modified count test
* Track modification of entries with --change-time
* Preserve existing behavior when editor is empty but make the message more clear
* Reconcile tests with new error message when clearing editor in edit mode
* Add found/modified counts to edit tests
* Add tests for found count with -n equivalent argument
* Test combinations of found/deleted messages when using --delete
* Add tests for counting combinations of action arguments (change-time, edit, delete) and for change-time counts. Some are failing and should be investigated
* Remove extraneous comment in test
* Track added/deleted counts in a register in the Journal class instead of attempting to infer it via controller counting
* Add encrypted to more tests
* Fix merge conflict typo
* Change 'write mode' -> 'append mode' in more places

---------

Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
This commit is contained in:
Jonathan Wren 2023-03-25 12:32:25 -07:00 committed by GitHub
parent b3c6f90a35
commit 3c923ae943
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 474 additions and 265 deletions

View file

@ -0,0 +1,108 @@
# Copyright © 2012-2023 jrnl contributors
# License: https://www.gnu.org/licenses/gpl-3.0.html
Feature: Test combinations of edit, change-time, and delete
Scenario Outline: --change-time with --edit modifies selected entries
Given we use the config "<config_file>"
And we write nothing to the editor if opened
And we use the password "test" if prompted
When we run "jrnl --change-time '2022-04-23 10:30' --edit" and enter
Y
N
Y
Then the error output should contain "No text received from editor. Were you trying to delete all the entries?"
And the editor should have been called
When we run "jrnl -99 --short"
Then the output should be
2020-08-31 14:32 A second entry in what I hope to be a long series.
2022-04-23 10:30 Entry the first.
2022-04-23 10:30 The third entry finally after weeks without writing.
Examples: Configs
| config_file |
| basic_onefile.yaml |
| basic_folder.yaml |
| basic_encrypted.yaml |
# | basic_dayone.yaml | @todo
Scenario Outline: --delete with --edit deletes selected entries
Given we use the config "<config_file>"
And we append to the editor if opened
[2023-02-21 10:32] Here is a new entry
And we use the password "test" if prompted
When we run "jrnl --delete --edit" and enter
Y
N
Y
Then the editor should have been called
And the error output should contain "3 entries found"
And the error output should contain "2 entries deleted"
And the error output should contain "1 entry added"
When we run "jrnl -99 --short"
Then the error output should contain "2 entries found"
And the output should be
2020-08-31 14:32 A second entry in what I hope to be a long series.
2023-02-21 10:32 Here is a new entry
Examples: Configs
| config_file |
| basic_onefile.yaml |
| basic_folder.yaml |
| basic_encrypted.yaml |
# | basic_dayone.yaml | @todo
Scenario Outline: --change-time with --delete affects appropriate entries
Given we use the config "<config_file>"
And we use the password "test" if prompted
# --change-time is asked first, then --delete
When we run "jrnl --change-time '2022-04-23 10:30' --delete" and enter
N
N
Y
Y
N
N
Then the error output should contain "3 entries found"
And the error output should contain "1 entry deleted"
And the error output should contain "1 entry modified"
When we run "jrnl -99 --short"
Then the output should be
2020-08-31 14:32 A second entry in what I hope to be a long series.
2022-04-23 10:30 The third entry finally after weeks without writing.
Examples: Configs
| config_file |
| basic_onefile.yaml |
| basic_folder.yaml |
| basic_encrypted.yaml |
# | basic_dayone.yaml | @todo
Scenario Outline: Combining --change-time and --delete and --edit affects appropriate entries
Given we use the config "<config_file>"
And we append to the editor if opened
[2023-02-21 10:32] Here is a new entry
And we use the password "test" if prompted
# --change-time is asked first, then --delete, then --edit
When we run "jrnl --change-time '2022-04-23 10:30' --delete --edit" and enter
N
Y
Y
Y
Y
N
Then the error output should contain "3 entries found"
And the error output should contain "2 entries deleted"
And the error output should contain "1 entry modified" # only 1, because the other was deleted
And the error output should contain "1 entry added" # by edit
When we run "jrnl -99 --short"
Then the output should be
2022-04-23 10:30 The third entry finally after weeks without writing.
2023-02-21 10:32 Here is a new entry
Examples: Configs
| config_file |
| basic_onefile.yaml |
| basic_folder.yaml |
| basic_encrypted.yaml |
# | basic_dayone.yaml | @todo

View file

@ -9,6 +9,8 @@ Feature: Change entry times in journal
Then the output should contain "2020-09-24 09:14 The third entry finally"
When we run "jrnl -1 --change-time '2022-04-23 10:30'" and enter
Y
Then the error output should contain "1 entry modified"
And the error output should not contain "deleted"
When we run "jrnl -99 --short"
Then the output should be
2020-08-29 11:11 Entry the first.
@ -34,6 +36,8 @@ Feature: Change entry times in journal
Y
N
Y
Then the error output should contain "3 entries found"
And the error output should contain "2 entries modified"
When we run "jrnl --short"
Then the output should be
2020-08-31 14:32 A second entry in what I hope to be a long series.
@ -48,10 +52,15 @@ Feature: Change entry times in journal
# | basic_dayone.yaml | @todo
Scenario Outline: Change time flag with nonsense input changes nothing
Scenario Outline: Answering "N" to change-time prompt deletes no entries
Given we use the config "<config_file>"
When we run "jrnl --change-time now asdfasdf"
Then the output should contain "No entries to modify"
And we use the password "test" if prompted
When we run "jrnl -1"
Then the output should contain "2020-09-24 09:14 The third entry finally"
When we run "jrnl -1 --change-time '2023-02-21 10:30'" and enter
N
Then the error output should not contain "modified"
And the error output should not contain "deleted"
When we run "jrnl -99 --short"
Then the output should be
2020-08-29 11:11 Entry the first.
@ -59,16 +68,40 @@ Feature: Change entry times in journal
2020-09-24 09:14 The third entry finally after weeks without writing.
Examples: Configs
| config_file |
| basic_onefile.yaml |
| basic_folder.yaml |
| basic_dayone.yaml |
| config_file |
| basic_onefile.yaml |
| basic_encrypted.yaml |
| basic_folder.yaml |
# | basic_dayone.yaml | @todo
Scenario Outline: Change time flag with nonsense input changes nothing
Given we use the config "<config_file>"
And we use the password "test" if prompted
When we run "jrnl --change-time now asdfasdf"
Then the output should contain "No entries to modify"
And the error output should not contain "entries modified"
And the error output should not contain "entries deleted"
When we run "jrnl -99 --short"
Then the output should be
2020-08-29 11:11 Entry the first.
2020-08-31 14:32 A second entry in what I hope to be a long series.
2020-09-24 09:14 The third entry finally after weeks without writing.
Examples: Configs
| config_file |
| basic_onefile.yaml |
| basic_folder.yaml |
| basic_encrypted.yaml |
| basic_dayone.yaml |
Scenario Outline: Change time flag with tag only changes tagged entries
Given we use the config "<config_file>"
And we use the password "test" if prompted
When we run "jrnl --change-time '2022-04-23 10:30' @ipsum" and enter
Y
Then the error output should contain "1 entry found"
And the error output should contain "1 entry modified"
When we run "jrnl -99 --short"
Then the output should be
2020-08-31 14:32 A second entry in what I hope to be a long series.
@ -76,14 +109,16 @@ Feature: Change entry times in journal
2022-04-23 10:30 Entry the first.
Examples: Configs
| config_file |
| basic_onefile.yaml |
| basic_folder.yaml |
| config_file |
| basic_onefile.yaml |
| basic_folder.yaml |
| basic_encrypted.yaml |
# | basic_dayone.yaml | @todo
Scenario Outline: Change time flag with multiple tags changes all entries matching any of the tags
Given we use the config "<config_file>"
And we use the password "test" if prompted
When we run "jrnl --change-time '2022-04-23 10:30' @ipsum @tagthree" and enter
Y
Y
@ -94,14 +129,16 @@ Feature: Change entry times in journal
2022-04-23 10:30 The third entry finally after weeks without writing.
Examples: Configs
| config_file |
| basic_onefile.yaml |
| basic_folder.yaml |
| config_file |
| basic_onefile.yaml |
| basic_folder.yaml |
| basic_encrypted.yaml |
# | basic_dayone.yaml | @todo
Scenario Outline: Change time flag with -and changes boolean AND of tagged entries
Given we use the config "<config_file>"
And we use the password "test" if prompted
When we run "jrnl --change-time '2022-04-23 10:30' -and @tagone @tagtwo" and enter
Y
When we run "jrnl -99 --short"
@ -111,14 +148,16 @@ Feature: Change entry times in journal
2022-04-23 10:30 Entry the first.
Examples: Configs
| config_file |
| basic_onefile.yaml |
| basic_folder.yaml |
| config_file |
| basic_onefile.yaml |
| basic_folder.yaml |
| basic_encrypted.yaml |
# | basic_dayone.yaml | @todo
Scenario Outline: Change time flag with -not does not change entries from given tag
Given we use the config "<config_file>"
And we use the password "test" if prompted
When we run "jrnl --change-time '2022-04-23 10:30' @tagone -not @ipsum" and enter
Y
When we run "jrnl -99 --short"
@ -128,14 +167,16 @@ Feature: Change entry times in journal
2022-04-23 10:30 The third entry finally after weeks without writing.
Examples: Configs
| config_file |
| basic_onefile.yaml |
| basic_folder.yaml |
| config_file |
| basic_onefile.yaml |
| basic_folder.yaml |
| basic_encrypted.yaml |
# | basic_dayone.yaml | @todo
Scenario Outline: Change time flag with -from search operator only changes entries since that date
Given we use the config "<config_file>"
And we use the password "test" if prompted
When we run "jrnl --change-time '2022-04-23 10:30' -from 2020-09-01" and enter
Y
When we run "jrnl -99 --short"
@ -145,14 +186,16 @@ Feature: Change entry times in journal
2022-04-23 10:30 The third entry finally after weeks without writing.
Examples: Configs
| config_file |
| basic_onefile.yaml |
| basic_folder.yaml |
| config_file |
| basic_onefile.yaml |
| basic_folder.yaml |
| basic_encrypted.yaml |
# | basic_dayone.yaml | @todo
Scenario Outline: Change time flag with -to only changes entries up to specified date
Given we use the config "<config_file>"
And we use the password "test" if prompted
When we run "jrnl --change-time '2022-04-23 10:30' -to 2020-08-31" and enter
Y
Y
@ -163,14 +206,16 @@ Feature: Change entry times in journal
2022-04-23 10:30 A second entry in what I hope to be a long series.
Examples: Configs
| config_file |
| basic_onefile.yaml |
| basic_folder.yaml |
| config_file |
| basic_onefile.yaml |
| basic_folder.yaml |
| basic_encrypted.yaml |
# | basic_dayone.yaml | @todo
Scenario Outline: Change time flag with -starred only changes starred entries
Given we use the config "<config_file>"
And we use the password "test" if prompted
When we run "jrnl --change-time '2022-04-23 10:30' -starred" and enter
Y
When we run "jrnl -99 --short"
@ -180,16 +225,19 @@ Feature: Change entry times in journal
2022-04-23 10:30 A second entry in what I hope to be a long series.
Examples: Configs
| config_file |
| basic_onefile.yaml |
| basic_folder.yaml |
| config_file |
| basic_onefile.yaml |
| basic_folder.yaml |
| basic_encrypted.yaml |
# | basic_dayone.yaml | @todo
Scenario Outline: Change time flag with -contains only changes entries containing expression
Given we use the config "<config_file>"
And we use the password "test" if prompted
When we run "jrnl --change-time '2022-04-23 10:30' -contains dignissim" and enter
Y
Then the error output should contain "1 entry modified"
When we run "jrnl -99 --short"
Then the output should be
2020-08-31 14:32 A second entry in what I hope to be a long series.
@ -197,13 +245,14 @@ Feature: Change entry times in journal
2022-04-23 10:30 Entry the first.
Examples: Configs
| config_file |
| basic_onefile.yaml |
| basic_folder.yaml |
| config_file |
| basic_onefile.yaml |
| basic_folder.yaml |
| basic_encrypted.yaml |
# | basic_dayone.yaml | @todo
Scenario Outline: Change time flag with no enties specified changes nothing
Scenario Outline: Change time flag with no entries specified changes nothing
Given we use the config "<config_file>"
And we use the password "test" if prompted
When we run "jrnl --change-time" and enter
@ -217,30 +266,8 @@ Feature: Change entry times in journal
2020-09-24 09:14 The third entry finally after weeks without writing.
Examples: Configs
| config_file |
| basic_onefile.yaml |
| basic_folder.yaml |
| basic_dayone.yaml |
Scenario Outline: --change-time with --edit modifies selected entries
Given we use the config "<config_file>"
And we write nothing to the editor if opened
And we use the password "test" if prompted
When we run "jrnl --change-time '2022-04-23 10:30' --edit" and enter
Y
N
Y
Then the error output should contain "No entry to save"
And the editor should have been called
When we run "jrnl -99 --short"
Then the output should be
2020-08-31 14:32 A second entry in what I hope to be a long series.
2022-04-23 10:30 Entry the first.
2022-04-23 10:30 The third entry finally after weeks without writing.
Examples: Configs
| config_file |
| basic_onefile.yaml |
| basic_folder.yaml |
# | basic_dayone.yaml | @todo
| config_file |
| basic_onefile.yaml |
| basic_folder.yaml |
| basic_encrypted.yaml |
| basic_dayone.yaml |

View file

@ -11,6 +11,8 @@ Feature: Delete entries from journal
N
N
Y
Then the error output should contain "3 entries found"
And the error output should contain "1 entry deleted"
When we run "jrnl -99 --short"
Then the output should be
2020-08-29 11:11 Entry the first.
@ -28,6 +30,7 @@ Feature: Delete entries from journal
Given we use the config "<config_file>"
When we run "jrnl --delete -n 1" and enter
N
Then the error output should not contain "deleted"
When we run "jrnl -99 --short"
Then the output should be
2020-08-29 11:11 Entry the first.
@ -44,7 +47,7 @@ Feature: Delete entries from journal
Scenario Outline: Delete flag with nonsense input deletes nothing (issue #932)
Given we use the config "<config_file>"
When we run "jrnl --delete asdfasdf"
Then the output should contain "No entries to delete"
Then the error output should contain "No entries to delete"
When we run "jrnl -99 --short"
Then the output should be
2020-08-29 11:11 Entry the first.
@ -62,6 +65,8 @@ Feature: Delete entries from journal
Given we use the config "<config_file>"
When we run "jrnl --delete @ipsum" and enter
Y
Then the error output should contain "1 entry found"
Then the error output should contain "1 entry deleted"
When we run "jrnl -99 --short"
Then the output should be
2020-08-31 14:32 A second entry in what I hope to be a long series.
@ -79,6 +84,8 @@ Feature: Delete entries from journal
When we run "jrnl --delete @ipsum @tagthree" and enter
Y
Y
Then the error output should contain "2 entries found"
And the error output should contain "2 entries deleted"
When we run "jrnl -99 --short"
Then the output should be
2020-08-31 14:32 A second entry in what I hope to be a long series.
@ -94,6 +101,8 @@ Feature: Delete entries from journal
Given we use the config "<config_file>"
When we run "jrnl --delete -and @tagone @tagtwo" and enter
Y
Then the error output should contain "1 entry found"
And the error output should contain "1 entry deleted"
When we run "jrnl -99 --short"
Then the output should be
2020-08-31 14:32 A second entry in what I hope to be a long series.
@ -110,6 +119,8 @@ Feature: Delete entries from journal
Given we use the config "<config_file>"
When we run "jrnl --delete @tagone -not @ipsum" and enter
Y
Then the error output should contain "1 entry found"
And the error output should contain "1 entry deleted"
When we run "jrnl -99 --short"
Then the output should be
2020-08-29 11:11 Entry the first.
@ -126,6 +137,8 @@ Feature: Delete entries from journal
Given we use the config "<config_file>"
When we run "jrnl --delete -from 2020-09-01" and enter
Y
Then the error output should contain "1 entry found"
And the error output should contain "1 entry deleted"
When we run "jrnl -99 --short"
Then the output should be
2020-08-29 11:11 Entry the first.
@ -143,6 +156,8 @@ Feature: Delete entries from journal
When we run "jrnl --delete -to 2020-08-31" and enter
Y
Y
Then the error output should contain "2 entries found"
And the error output should contain "2 entries deleted"
When we run "jrnl -99 --short"
Then the output should be
2020-09-24 09:14 The third entry finally after weeks without writing.
@ -158,6 +173,7 @@ Feature: Delete entries from journal
Given we use the config "<config_file>"
When we run "jrnl --delete -starred" and enter
Y
Then the error output should contain "1 entry deleted"
When we run "jrnl -99 --short"
Then the output should be
2020-08-29 11:11 Entry the first.
@ -174,6 +190,8 @@ Feature: Delete entries from journal
Given we use the config "<config_file>"
When we run "jrnl --delete -contains dignissim" and enter
Y
Then the error output should contain "1 entry found"
And the error output should contain "1 entry deleted"
When we run "jrnl -99 --short"
Then the output should be
2020-08-31 14:32 A second entry in what I hope to be a long series.

View file

@ -372,3 +372,29 @@ Feature: Searching in a journal
2013-06-17 20:38 This entry has a location.
2013-07-17 11:38 This entry is starred!
Scenario Outline: Searching the most recent entry should not show found count
Given we use the config "<config_file>"
And we use the password "test" if prompted
When we run "jrnl -1"
Then the error output should not contain "1 entry found"
Examples: configs
| config_file |
| basic_onefile.yaml |
| basic_encrypted.yaml |
| basic_folder.yaml |
| basic_dayone.yaml |
Scenario Outline: Searching for more entries than are in the journal should show found count
Given we use the config "<config_file>"
And we use the password "test" if prompted
When we run "jrnl -4"
Then the error output should contain "3 entries found"
Examples: configs
| config_file |
| basic_onefile.yaml |
| basic_encrypted.yaml |
| basic_folder.yaml |
| basic_dayone.yaml |

View file

@ -76,21 +76,21 @@ Feature: Writing new entries.
| basic_dayone.yaml |
| basic_folder.yaml |
Scenario Outline: Writing an empty entry from the editor should yield "No entry to save" message
Scenario Outline: Clearing the editor's contents should yield "No text received" message
Given we use the config "<config_file>"
And we write nothing to the editor if opened
And we use the password "test" if prompted
When we run "jrnl --edit"
Then the error output should contain "No entry to save, because no text was received"
Then the error output should contain "No text received from editor. Were you trying to delete all the entries?"
And the editor should have been called
Examples: configs
| config_file |
| editor.yaml |
| editor_empty_folder.yaml |
| dayone.yaml |
| basic_encrypted.yaml |
| basic_onefile.yaml |
| config_file |
| editor.yaml |
| basic_onefile.yaml |
| basic_encrypted.yaml |
| basic_dayone.yaml |
| basic_folder.yaml |
Scenario Outline: Writing an empty entry from the command line should yield "No entry to save" message
Given we use the config "<config_file>"
@ -236,7 +236,9 @@ Feature: Writing new entries.
And we append to the editor if opened
[2021-11-13] worked on jrnl tests
When we run "jrnl --edit"
Then the output should contain "1 entry added"
Then the error output should contain "3 entries found"
And the error output should contain "1 entry added"
Examples: configs
| config_file |
@ -254,7 +256,8 @@ Feature: Writing new entries.
[2021-11-12] worked on jrnl tests again
[2021-11-13] worked on jrnl tests a little bit more
When we run "jrnl --edit"
Then the error output should contain "3 entries added"
Then the error output should contain "3 entries found"
And the error output should contain "3 entries added"
Examples: configs
| config_file |
@ -271,7 +274,7 @@ Feature: Writing new entries.
[2021-11-13] I am replacing my whole journal with this entry
When we run "jrnl --edit"
Then the output should contain "2 entries deleted"
Then the output should contain "3 entries modified"
And the output should contain "1 entry modified"
Examples: configs
| config_file |
@ -287,8 +290,7 @@ Feature: Writing new entries.
And we write to the editor if opened
[2021-11-13] I am replacing the last entry with this entry
When we run "jrnl --edit -1"
Then the output should contain
1 entry modified
Then the error output should contain "1 entry modified"
Examples: configs
| config_file |
@ -304,8 +306,8 @@ Feature: Writing new entries.
And we append to the editor if opened
This is a small addendum to my latest entry.
When we run "jrnl --edit"
Then the output should contain
1 entry modified
Then the error output should contain "3 entries found"
And the error output should contain "1 entry modified"
Examples: configs
| config_file |
@ -341,6 +343,7 @@ Feature: Writing new entries.
And we append to the editor if opened
@newtag
When we run "jrnl --edit -1"
Then the error output should contain "1 entry modified"
When we run "jrnl --tags @newtag"
Then the output should contain
1 entry found

View file

@ -3,6 +3,7 @@
from pytest_bdd import scenarios
scenarios("features/actions.feature")
scenarios("features/build.feature")
scenarios("features/config_file.feature")
scenarios("features/core.feature")

View file

@ -125,7 +125,10 @@ def we_use_the_config(request, temp_dir, working_dir, config_file):
return config_dest
@given(parse('we copy the template "{template_file}" to the default templates folder'), target_fixture="default_templates_path")
@given(
parse('we copy the template "{template_file}" to the default templates folder'),
target_fixture="default_templates_path",
)
def we_copy_the_template(request, temp_dir, working_dir, template_file):
# Move into temp dir as cwd
os.chdir(temp_dir.name) # @todo move this step to a more universal place

View file

@ -197,12 +197,12 @@ def config_var_in_memory(config_in_memory, journal_name, it_should, some_yaml):
@then("we should be prompted for a password")
def password_was_called(cli_run):
assert cli_run["mocks"]["user_input"].called
assert cli_run["mocks"]["user_input"].return_value.input.called
@then("we should not be prompted for a password")
def password_was_not_called(cli_run):
assert not cli_run["mocks"]["user_input"].called
assert not cli_run["mocks"]["user_input"].return_value.input.called
@then(parse("the cache directory should contain the files\n{file_list}"))

View file

@ -18,15 +18,17 @@ def random_string():
@pytest.mark.parametrize("export_format", ["pretty", "short"])
@mock.patch("builtins.print")
@mock.patch("jrnl.controller.Journal.pprint")
def test_display_search_results_pretty_short(mock_pprint, mock_print, export_format):
def test_display_search_results_pretty_short(export_format):
mock_args = parse_args(["--format", export_format])
test_journal = mock.Mock(wraps=jrnl.journals.Journal)
test_journal = jrnl.journals.Journal()
test_journal.new_entry("asdf")
test_journal.pprint = mock.Mock()
_display_search_results(mock_args, test_journal)
mock_print.assert_called_once_with(mock_pprint.return_value)
test_journal.pprint.assert_called_once()
@pytest.mark.parametrize(
@ -40,7 +42,9 @@ def test_display_search_results_builtin_plugins(
test_filename = random_string
mock_args = parse_args(["--format", export_format, "--file", test_filename])
test_journal = mock.Mock(wraps=jrnl.journals.Journal)
test_journal = jrnl.journals.Journal()
test_journal.new_entry("asdf")
mock_export = mock.Mock()
mock_exporter.return_value.export = mock_export

View file

@ -26,7 +26,6 @@ def build_card_header(datestr):
class TestFancy:
def test_too_small_linewrap(self, datestr):
journal = "test_journal"
content = build_card_header(datestr)

View file

@ -101,7 +101,6 @@ def test_get_kv_from_pair():
class TestDotNotationToList:
def test_unpack_dots_to_list(self):
keys = "a.b.c.d.e.f"
keys_list = _convert_dots_to_list(keys)
assert len(keys_list) == 6

View file

@ -230,7 +230,6 @@ def test_version_alone():
def test_editor_override():
parsed_args = cli_as_dict('--config-override editor "nano"')
assert parsed_args == expected_args(config_override=[["editor", "nano"]])
@ -294,7 +293,6 @@ class TestDeserialization:
],
)
def test_deserialize_multiword_strings(self, input_str):
runtime_config = make_yaml_valid_dict(input_str)
assert runtime_config.__class__ == dict
assert input_str[0] in runtime_config