import pathlib from unittest.mock import patch import pytest from yamily._cli import _list @patch("sys.argv", ["", "non/existing/file.yml"]) def test__read_non_existing(): with pytest.raises(FileNotFoundError): _list() @patch("sys.argv", ["", "persons/erika-mustermann.yml"]) def test__list_single_simple(capsys): _list() out, err = capsys.readouterr() assert not err assert out == ( "- !person\n" " birth_date: 1957-08-12\n" " identifier: erika-mustermann\n" " name: Erika Mustermann\n" ) @patch("sys.argv", ["", "persons/max-mustermann.yml"]) def test__list_single_parents(capsys): _list() out, err = capsys.readouterr() assert not err assert out == ( "- &id001 !person\n" " identifier: erika-mustermann\n" "- !person\n" " birth_date: 1976-02-01\n" " father: &id002 !person\n" " identifier: thomas-mustermann\n" " identifier: max-mustermann\n" " mother: *id001\n" " name: Max Mustermann\n" "- *id002\n" ) @patch("sys.argv", ["", "persons/max-mustermann.yml", "persons/erika-mustermann.yml"]) def test__list_multiple(capsys): _list() out, err = capsys.readouterr() assert not err assert out == ( "- &id001 !person\n" " birth_date: 1957-08-12\n" " identifier: erika-mustermann\n" " name: Erika Mustermann\n" "- !person\n" " birth_date: 1976-02-01\n" " father: &id002 !person\n" " identifier: thomas-mustermann\n" " identifier: max-mustermann\n" " mother: *id001\n" " name: Max Mustermann\n" "- *id002\n" ) @patch("sys.argv", ["", "persons"]) def test__list_recurse_dir(capsys): _list() out, err = capsys.readouterr() assert not err assert out == ( "- &id001 !person\n" " birth_date: 1957-08-12\n" " identifier: erika-mustermann\n" " name: Erika Mustermann\n" "- !person\n" " birth_date: 1976-02-01\n" " father: &id002 !person\n" " identifier: thomas-mustermann\n" " identifier: max-mustermann\n" " mother: *id001\n" " name: Max Mustermann\n" "- *id002\n" )