_list_test.py 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import pathlib
  2. from unittest.mock import patch
  3. import pytest
  4. from yamily._cli import _list
  5. @patch("sys.argv", ["", "non/existing/file.yml"])
  6. def test__read_non_existing():
  7. with pytest.raises(FileNotFoundError):
  8. _list()
  9. @patch("sys.argv", ["", "persons/erika-mustermann.yml"])
  10. def test__list_single_simple(capsys):
  11. _list()
  12. out, err = capsys.readouterr()
  13. assert not err
  14. assert out == (
  15. "- !person\n"
  16. " birth_date: 1957-08-12\n"
  17. " identifier: erika-mustermann\n"
  18. " name: Erika Mustermann\n"
  19. )
  20. @patch("sys.argv", ["", "persons/max-mustermann.yml"])
  21. def test__list_single_parents(capsys):
  22. _list()
  23. out, err = capsys.readouterr()
  24. assert not err
  25. assert out == (
  26. "- &id001 !person\n"
  27. " identifier: erika-mustermann\n"
  28. "- !person\n"
  29. " birth_date: 1976-02-01\n"
  30. " father: &id002 !person\n"
  31. " identifier: thomas-mustermann\n"
  32. " identifier: max-mustermann\n"
  33. " mother: *id001\n"
  34. " name: Max Mustermann\n"
  35. "- *id002\n"
  36. )
  37. @patch("sys.argv", ["", "persons/max-mustermann.yml", "persons/erika-mustermann.yml"])
  38. def test__list_multiple(capsys):
  39. _list()
  40. out, err = capsys.readouterr()
  41. assert not err
  42. assert out == (
  43. "- &id001 !person\n"
  44. " birth_date: 1957-08-12\n"
  45. " identifier: erika-mustermann\n"
  46. " name: Erika Mustermann\n"
  47. "- !person\n"
  48. " birth_date: 1976-02-01\n"
  49. " father: &id002 !person\n"
  50. " identifier: thomas-mustermann\n"
  51. " identifier: max-mustermann\n"
  52. " mother: *id001\n"
  53. " name: Max Mustermann\n"
  54. "- *id002\n"
  55. )
  56. @patch("sys.argv", ["", "persons"])
  57. def test__list_recurse_dir(capsys):
  58. _list()
  59. out, err = capsys.readouterr()
  60. assert not err
  61. assert out == (
  62. "- &id001 !person\n"
  63. " birth_date: 1957-08-12\n"
  64. " identifier: erika-mustermann\n"
  65. " name: Erika Mustermann\n"
  66. "- !person\n"
  67. " birth_date: 1976-02-01\n"
  68. " father: &id002 !person\n"
  69. " identifier: thomas-mustermann\n"
  70. " identifier: max-mustermann\n"
  71. " mother: *id001\n"
  72. " name: Max Mustermann\n"
  73. "- *id002\n"
  74. )