fix: provider settings in top level field of configuration (#1161)

Configuration for some providers was given in the sub-field `provider_settings`
combining the settings of several providers. Pydantic does not understand
this very well and the configuration became cumbersome, especially in EOSdash.

All provider settings from the `provider-settings` sub-field are now lifted
to the top level field of the configuration.

The changes are automatically migrated in the configuration.

Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
This commit is contained in:
Bobby Noelte
2026-07-20 14:37:03 +02:00
committed by GitHub
parent 845191c0d0
commit 3bb0e02aed
44 changed files with 798 additions and 1061 deletions

View File

@@ -19,11 +19,9 @@ def provider(sample_import_1_json, config_eos):
settings = {
"weather": {
"provider": "WeatherImport",
"provider_settings": {
"WeatherImport": {
"import_file_path": str(FILE_TESTDATA_WEATHERIMPORT_1_JSON),
"import_json": json.dumps(sample_import_1_json),
},
"weatherimport": {
"import_file_path": str(FILE_TESTDATA_WEATHERIMPORT_1_JSON),
"import_json": json.dumps(sample_import_1_json),
},
}
}
@@ -57,10 +55,8 @@ def test_invalid_provider(provider, config_eos, monkeypatch):
settings = {
"weather": {
"provider": "<invalid>",
"provider_settings": {
"WeatherImport": {
"import_file_path": str(FILE_TESTDATA_WEATHERIMPORT_1_JSON),
},
"weatherimport": {
"import_file_path": str(FILE_TESTDATA_WEATHERIMPORT_1_JSON),
},
}
}
@@ -93,11 +89,11 @@ async def test_import(provider, sample_import_1_json, start_datetime, from_file,
ems_eos = get_ems()
ems_eos.set_start_datetime(to_datetime(start_datetime, in_timezone="Europe/Berlin"))
if from_file:
config_eos.weather.provider_settings.WeatherImport.import_json = None
assert config_eos.weather.provider_settings.WeatherImport.import_json is None
config_eos.weather.weatherimport.import_json = None
assert config_eos.weather.weatherimport.import_json is None
else:
config_eos.weather.provider_settings.WeatherImport.import_file_path = None
assert config_eos.weather.provider_settings.WeatherImport.import_file_path is None
config_eos.weather.weatherimport.import_file_path = None
assert config_eos.weather.weatherimport.import_file_path is None
await provider.delete_by_datetime(start_datetime=None, end_datetime=None)
# Call the method