소스 검색

Added 2 new unit tests and updated docs

Gautam Aggarwal 3 달 전
부모
커밋
0182dbd914
2개의 변경된 파일40개의 추가작업 그리고 0개의 파일을 삭제
  1. 10 0
      docs/how-to/set-up-backups.md
  2. 30 0
      tests/unit/commands/test_borgmatic.py

+ 10 - 0
docs/how-to/set-up-backups.md

@@ -296,6 +296,16 @@ skip_actions:
     - compact
 ```
 
+## Disabling default actions
+
+By default, running `borgmatic` without any arguments will perform the default backup actions (create, prune, and compact). If you want to disable this behavior and require explicit actions to be specified, add the following to your configuration:
+
+```yaml
+default_actions: false
+```
+
+With this setting, running `borgmatic` without arguments will show the help message instead of performing any actions.
+
 
 ## Autopilot
 

+ 30 - 0
tests/unit/commands/test_borgmatic.py

@@ -2099,3 +2099,33 @@ def test_check_and_show_help_on_no_args_does_not_show_help_when_args_provided():
     flexmock(module.sys).should_receive('exit').never()
     module.check_and_show_help_on_no_args({'test.yaml': {'default_actions': False}})
 
+def test_check_and_show_help_on_no_args_with_no_default_actions_in_all_configs():
+    flexmock(module.sys).should_receive('argv').and_return(['borgmatic'])
+    
+    # Both configs have default_actions set to False, so help should be shown
+    configs = {
+        'config1.yaml': {'default_actions': False},
+        'config2.yaml': {'default_actions': False}
+    }
+    
+    # Expect help to be shown
+    flexmock(module).should_receive('parse_arguments').with_args('--help').once()
+    flexmock(module.sys).should_receive('exit').with_args(0).once()
+    
+    module.check_and_show_help_on_no_args(configs)
+
+def test_check_and_show_help_on_no_args_with_conflicting_configs():
+    flexmock(module.sys).should_receive('argv').and_return(['borgmatic'])
+    
+    # Simulate two config files with conflicting 'default_actions' values
+    configs = {
+        'config1.yaml': {'default_actions': True},
+        'config2.yaml': {'default_actions': False}
+    }
+    
+    # Expect help not to be shown because at least one config enables default actions
+    flexmock(module).should_receive('parse_arguments').never()
+    flexmock(module.sys).should_receive('exit').never()
+    
+    module.check_and_show_help_on_no_args(configs)
+