test_export_tar.py 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. from flexmock import flexmock
  2. from borgmatic.actions import export_tar as module
  3. def test_run_export_tar_does_not_raise():
  4. flexmock(module.logger).answer = lambda message: None
  5. flexmock(module.borgmatic.config.validate).should_receive('repositories_match').and_return(True)
  6. flexmock(module.borgmatic.borg.export_tar).should_receive('export_tar_archive')
  7. export_tar_arguments = flexmock(
  8. repository=flexmock(),
  9. archive=flexmock(),
  10. paths=flexmock(),
  11. destination=flexmock(),
  12. tar_filter=flexmock(),
  13. list_details=flexmock(),
  14. strip_components=flexmock(),
  15. )
  16. global_arguments = flexmock(monitoring_verbosity=1, dry_run=False)
  17. module.run_export_tar(
  18. repository={'path': 'repo'},
  19. config={},
  20. local_borg_version=None,
  21. export_tar_arguments=export_tar_arguments,
  22. global_arguments=global_arguments,
  23. local_path=None,
  24. remote_path=None,
  25. )
  26. def test_run_export_tar_favors_flags_over_config():
  27. flexmock(module.logger).answer = lambda message: None
  28. flexmock(module.borgmatic.config.validate).should_receive('repositories_match').and_return(True)
  29. flexmock(module.borgmatic.borg.export_tar).should_receive('export_tar_archive').with_args(
  30. object,
  31. object,
  32. object,
  33. object,
  34. object,
  35. object,
  36. object,
  37. object,
  38. local_path=object,
  39. remote_path=object,
  40. tar_filter=object,
  41. strip_components=object,
  42. ).once()
  43. export_tar_arguments = flexmock(
  44. repository=flexmock(),
  45. archive=flexmock(),
  46. paths=flexmock(),
  47. destination=flexmock(),
  48. tar_filter=flexmock(),
  49. list_details=False,
  50. strip_components=flexmock(),
  51. )
  52. global_arguments = flexmock(monitoring_verbosity=1, dry_run=False)
  53. module.run_export_tar(
  54. repository={'path': 'repo'},
  55. config={'list_details': True},
  56. local_borg_version=None,
  57. export_tar_arguments=export_tar_arguments,
  58. global_arguments=global_arguments,
  59. local_path=None,
  60. remote_path=None,
  61. )
  62. def test_run_export_tar_defaults_to_config():
  63. flexmock(module.logger).answer = lambda message: None
  64. flexmock(module.borgmatic.config.validate).should_receive('repositories_match').and_return(True)
  65. flexmock(module.borgmatic.borg.export_tar).should_receive('export_tar_archive').with_args(
  66. object,
  67. object,
  68. object,
  69. object,
  70. object,
  71. object,
  72. object,
  73. object,
  74. local_path=object,
  75. remote_path=object,
  76. tar_filter=object,
  77. strip_components=object,
  78. ).once()
  79. export_tar_arguments = flexmock(
  80. repository=flexmock(),
  81. archive=flexmock(),
  82. paths=flexmock(),
  83. destination=flexmock(),
  84. tar_filter=flexmock(),
  85. list_details=None,
  86. strip_components=flexmock(),
  87. )
  88. global_arguments = flexmock(monitoring_verbosity=1, dry_run=False)
  89. module.run_export_tar(
  90. repository={'path': 'repo'},
  91. config={'list_details': True},
  92. local_borg_version=None,
  93. export_tar_arguments=export_tar_arguments,
  94. global_arguments=global_arguments,
  95. local_path=None,
  96. remote_path=None,
  97. )