Przeglądaj źródła

address more review comments

Florian Apolloner 1 miesiąc temu
rodzic
commit
56a3f6d854

+ 11 - 6
tests/end-to-end/hooks/data_source/test_database.py

@@ -9,8 +9,6 @@ import pymongo
 import pytest
 import ruamel.yaml
 
-from borgmatic.hooks.data_source import config
-
 
 def write_configuration(
     source_directory,
@@ -275,10 +273,17 @@ postgresql_databases:
 
 
 def get_connection_params(database, use_restore_options=False):
-    hostname = config.resolve_database_option('hostname', database, restore=use_restore_options)
-    port = config.resolve_database_option('port', database, restore=use_restore_options)
-    username = config.resolve_database_option('username', database, restore=use_restore_options)
-    password = config.resolve_database_option('password', database, restore=use_restore_options)
+    hostname = (database.get('restore_hostname') if use_restore_options else None) or database.get(
+        'container',
+        database.get('hostname'),
+    )
+    port = (database.get('restore_port') if use_restore_options else None) or database.get('port')
+    username = (database.get('restore_username') if use_restore_options else None) or database.get(
+        'username',
+    )
+    password = (database.get('restore_password') if use_restore_options else None) or database.get(
+        'password',
+    )
 
     return (hostname, port, username, password)
 

+ 13 - 0
tests/unit/config/test_arguments.py

@@ -209,6 +209,19 @@ def test_prepare_arguments_for_config_skips_option_with_none_value():
     ) == ((('other_option',), 'value2'),)
 
 
+def test_prepare_arguments_for_config_skips_option_with_complex_schema():
+    assert module.prepare_arguments_for_config(
+        global_arguments=flexmock(my_option='value1', other_option='value2'),
+        schema={
+            'type': 'object',
+            'properties': {
+                'my_option': {'type': 'object', 'properties': {'sub_option': {'type': 'string'}}},
+                'other_option': {'type': 'string'},
+            },
+        },
+    ) == ((('other_option',), 'value2'),)
+
+
 def test_prepare_arguments_for_config_skips_option_missing_from_schema():
     assert module.prepare_arguments_for_config(
         global_arguments=flexmock(**{'my_option.sub_option': 'value1', 'other_option': 'value2'}),