jrnl/tests/test_display.py
2021-02-13 19:54:53 -05:00

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)