test_extract.py 2.9 KB

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