mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-20 04:58:32 +02:00
42 lines
1.4 KiB
Python
42 lines
1.4 KiB
Python
import argparse
|
|
import jrnl
|
|
import pytest
|
|
from unittest import mock
|
|
from jrnl.jrnl import _export_journal
|
|
|
|
|
|
# fmt: off
|
|
# see: https://github.com/psf/black/issues/664
|
|
@pytest.mark.parametrize("export_format", [ "pretty", "short",])
|
|
#fmt: on
|
|
@mock.patch.object(argparse, "Namespace", return_value={"export": None, "filename": None})
|
|
def test_export_format(mock_args, export_format):
|
|
|
|
test_journal = jrnl.Journal.Journal
|
|
mock_args.export = export_format
|
|
# fmt: off
|
|
# see: https://github.com/psf/black/issues/664
|
|
with mock.patch("builtins.print") as print_spy, mock.patch("jrnl.Journal.Journal.pprint") as mock_pprint:
|
|
_export_journal(mock_args, test_journal)
|
|
print_spy.call_args_list = mock_pprint
|
|
# fmt: on
|
|
|
|
|
|
@mock.patch.object(argparse, "Namespace", return_value={"export": None, "filename": None})
|
|
def test_export_plugin(mock_args):
|
|
export_format = "markdown"
|
|
|
|
test_journal = jrnl.Journal.Journal
|
|
mock_args.export = export_format
|
|
mock_args.filename = "foo.jrnl"
|
|
|
|
# fmt: off
|
|
# see: https://github.com/psf/black/issues/664
|
|
with mock.patch("builtins.print") as print_spy, \
|
|
mock.patch("jrnl.plugins.get_exporter") as mock_get_exporter, \
|
|
mock.patch("jrnl.Journal.Journal.pprint") as mock_pprint:
|
|
_export_journal(mock_args, test_journal)
|
|
# fmt: on
|
|
|
|
print_spy.call_args_list = mock_pprint
|
|
mock_get_exporter.assert_called_once_with(export_format)
|