mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-10 08:38:32 +02:00
* 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>
47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
# Copyright © 2012-2023 jrnl contributors
|
|
# License: https://www.gnu.org/licenses/gpl-3.0.html
|
|
|
|
from unittest import mock
|
|
|
|
import pytest
|
|
|
|
from jrnl.exception import JrnlException
|
|
from jrnl.messages import Message
|
|
from jrnl.messages import MsgStyle
|
|
from jrnl.messages import MsgText
|
|
from jrnl.plugins.fancy_exporter import check_provided_linewrap_viability
|
|
from jrnl.plugins.yaml_exporter import YAMLExporter
|
|
|
|
|
|
@pytest.fixture()
|
|
def datestr():
|
|
yield "2020-10-20 16:59"
|
|
|
|
|
|
def build_card_header(datestr):
|
|
top_left_corner = "┎─╮"
|
|
content = top_left_corner + datestr
|
|
return content
|
|
|
|
|
|
class TestFancy:
|
|
def test_too_small_linewrap(self, datestr):
|
|
journal = "test_journal"
|
|
content = build_card_header(datestr)
|
|
|
|
total_linewrap = 12
|
|
|
|
with pytest.raises(JrnlException):
|
|
check_provided_linewrap_viability(total_linewrap, [content], journal)
|
|
|
|
|
|
class TestYaml:
|
|
@mock.patch("jrnl.plugins.yaml_exporter.YAMLExporter.export_journal")
|
|
@mock.patch("builtins.open")
|
|
def test_export_to_nonexisting_folder(self, mock_open, mock_export_journal):
|
|
mock_export_journal.side_effect = JrnlException(
|
|
Message(MsgText.YamlMustBeDirectory, MsgStyle.ERROR)
|
|
)
|
|
with pytest.raises(JrnlException):
|
|
YAMLExporter.write_file("journal", "non-existing-path")
|
|
mock_open.assert_not_called()
|