_list_test.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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. "- !person\n"
  63. " father: &id001 !person\n"
  64. " identifier: alice-father\n"
  65. " mother: &id002 !person\n"
  66. " identifier: alice-grandmother\n"
  67. " name: Grandma Test\n"
  68. " identifier: alice\n"
  69. " mother: &id003 !person\n"
  70. " identifier: alice-mother\n"
  71. " name: Mum Test\n"
  72. " name: Alice Test\n"
  73. "- *id001\n"
  74. "- *id002\n"
  75. "- *id003\n"
  76. "- &id004 !person\n"
  77. " birth_date: 1957-08-12\n"
  78. " identifier: erika-mustermann\n"
  79. " name: Erika Mustermann\n"
  80. "- !person\n"
  81. " birth_date: 1976-02-01\n"
  82. " father: &id005 !person\n"
  83. " identifier: thomas-mustermann\n"
  84. " identifier: max-mustermann\n"
  85. " mother: *id004\n"
  86. " name: Max Mustermann\n"
  87. "- *id005\n"
  88. )