From d0d7a3e1c2d75fb0d9be3594ab113a804e4462a4 Mon Sep 17 00:00:00 2001 From: Alexandre Flament Date: Thu, 3 Dec 2020 11:35:12 +0100 Subject: [PATCH] [fix] settings_loader: don't crash when a key exists only in the user settings typical use case: result_proxy can be defined in the user settings, but are not defined the default settings.yml --- searx/settings_loader.py | 5 ++++- tests/unit/settings/user_settings_simple.yml | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/searx/settings_loader.py b/searx/settings_loader.py index 172069bd..5dbeb4a9 100644 --- a/searx/settings_loader.py +++ b/searx/settings_loader.py @@ -57,7 +57,10 @@ def update_settings(default_settings, user_settings): # merge everything except the engines for k, v in user_settings.items(): if k not in ('use_default_settings', 'engines'): - update_dict(default_settings[k], v) + if k in default_settings: + update_dict(default_settings[k], v) + else: + default_settings[k] = v # parse the engines remove_engines = None diff --git a/tests/unit/settings/user_settings_simple.yml b/tests/unit/settings/user_settings_simple.yml index 36e5f164..bc6ed0cf 100644 --- a/tests/unit/settings/user_settings_simple.yml +++ b/tests/unit/settings/user_settings_simple.yml @@ -4,3 +4,6 @@ server: bind_address: "0.0.0.0" default_http_headers: Custom-Header: Custom-Value +result_proxy: + url : https://localhost/morty + key : "$ecretKey"