Browse Source

tests for arguments.py

Divyansh Singh 2 years ago
parent
commit
f82631e3bb

+ 6 - 0
tests/integration/commands/test_arguments.py

@@ -297,6 +297,12 @@ def test_parse_arguments_disallows_paths_unless_action_consumes_it():
     with pytest.raises(SystemExit):
         module.parse_arguments('--config', 'myconfig', '--path', 'test')
 
+def test_parse_arguments_disallows_other_actions_with_config_bootstrap():
+    flexmock(module.collect).should_receive('get_default_config_paths').and_return(['default'])
+
+    with pytest.raises(ValueError):
+        module.parse_arguments('config', 'bootstrap', '--repository', 'test.borg', 'list')
+
 
 def test_parse_arguments_allows_archive_with_extract():
     flexmock(module.collect).should_receive('get_default_config_paths').and_return(['default'])

+ 11 - 0
tests/unit/commands/test_arguments.py

@@ -1,5 +1,6 @@
 import collections
 
+import pytest
 from flexmock import flexmock
 
 from borgmatic.commands import arguments as module
@@ -164,3 +165,13 @@ def test_parse_subparser_arguments_parses_borg_options_and_skips_other_subparser
     assert arguments == {'borg': action_namespace}
     assert arguments['borg'].options == ['list']
     assert remaining_arguments == []
+
+
+def test_parse_subparser_arguments_raises_error_when_no_subparser_is_specified():
+    action_namespace = flexmock(options=[])
+    subparsers = {
+        'config': flexmock(parse_known_args=lambda arguments: (action_namespace, ['config'])),
+    }
+
+    with pytest.raises(ValueError):
+        module.parse_subparser_arguments(('config',), subparsers)