test_extract.py 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. from flexmock import flexmock
  2. from borgmatic.actions import extract as module
  3. def test_run_extract_calls_hooks():
  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.extract).should_receive('extract_archive')
  7. extract_arguments = flexmock(
  8. paths=flexmock(),
  9. progress=flexmock(),
  10. destination=flexmock(),
  11. strip_components=flexmock(),
  12. archive=flexmock(),
  13. repository='repo',
  14. )
  15. global_arguments = flexmock(monitoring_verbosity=1, dry_run=False)
  16. module.run_extract(
  17. config_filename='test.yaml',
  18. repository={'path': 'repo'},
  19. config={'repositories': ['repo']},
  20. local_borg_version=None,
  21. extract_arguments=extract_arguments,
  22. global_arguments=global_arguments,
  23. local_path=None,
  24. remote_path=None,
  25. )
  26. def test_run_extract_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.extract).should_receive('extract_archive').with_args(
  30. object,
  31. object,
  32. object,
  33. object,
  34. object,
  35. object,
  36. object,
  37. local_path=object,
  38. remote_path=object,
  39. destination_path=object,
  40. strip_components=object,
  41. ).once()
  42. extract_arguments = flexmock(
  43. paths=flexmock(),
  44. progress=False,
  45. destination=flexmock(),
  46. strip_components=flexmock(),
  47. archive=flexmock(),
  48. repository='repo',
  49. )
  50. global_arguments = flexmock(monitoring_verbosity=1, dry_run=False)
  51. module.run_extract(
  52. config_filename='test.yaml',
  53. repository={'path': 'repo'},
  54. config={'repositories': ['repo'], 'progress': True},
  55. local_borg_version=None,
  56. extract_arguments=extract_arguments,
  57. global_arguments=global_arguments,
  58. local_path=None,
  59. remote_path=None,
  60. )
  61. def test_run_extract_defaults_to_config():
  62. flexmock(module.logger).answer = lambda message: None
  63. flexmock(module.borgmatic.config.validate).should_receive('repositories_match').and_return(True)
  64. flexmock(module.borgmatic.borg.extract).should_receive('extract_archive').with_args(
  65. object,
  66. object,
  67. object,
  68. object,
  69. object,
  70. object,
  71. object,
  72. local_path=object,
  73. remote_path=object,
  74. destination_path=object,
  75. strip_components=object,
  76. ).once()
  77. extract_arguments = flexmock(
  78. paths=flexmock(),
  79. progress=None,
  80. destination=flexmock(),
  81. strip_components=flexmock(),
  82. archive=flexmock(),
  83. repository='repo',
  84. )
  85. global_arguments = flexmock(monitoring_verbosity=1, dry_run=False)
  86. module.run_extract(
  87. config_filename='test.yaml',
  88. repository={'path': 'repo'},
  89. config={'repositories': ['repo'], 'progress': True},
  90. local_borg_version=None,
  91. extract_arguments=extract_arguments,
  92. global_arguments=global_arguments,
  93. local_path=None,
  94. remote_path=None,
  95. )