浏览代码

Added 2 new unit tests and updated docs

Gautam Aggarwal 2 月之前
父节点
当前提交
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)
+