Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
## Developer Experience

- **Authentication Configuration Validation**: Added validation for certificate, federated credential, and workload identity authentication settings
- **Configuration Loading**: Expanded `load_configuration_from_env` to accept any mapping type

---

Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.

from typing import Any
from typing import Any, Mapping

from ._configure_logging import _configure_logging


def load_configuration_from_env(env_vars: dict[str, Any]) -> dict:
def load_configuration_from_env(env_vars: Mapping[str, Any]) -> dict:
"""
Parses environment variables and returns a dictionary with the relevant configuration.
"""
vars = env_vars.copy()
local_vars = dict(env_vars)
result = {}
for key, value in vars.items():
for key, value in local_vars.items():
levels = key.split("__")
current_level = result
last_level = None
Expand Down
20 changes: 20 additions & 0 deletions tests/activity/config/test_load_configuration.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
from types import MappingProxyType

from microsoft_agents.activity import load_configuration_from_env

from tests._common import create_env_var_dict
Expand Down Expand Up @@ -101,3 +103,21 @@ def test_load_configuration_from_env():
input_dict = create_env_var_dict(ENV_RAW)
config = load_configuration_from_env(input_dict)
assert config == ENV_DICT


def test_load_configuration_from_read_only_mapping():
input_mapping = MappingProxyType(create_env_var_dict(ENV_RAW))

config = load_configuration_from_env(input_mapping)

assert config == ENV_DICT


def test_load_configuration_from_empty_mapping():
config = load_configuration_from_env({})

assert config == {
"AGENTAPPLICATION": {},
"CONNECTIONS": {},
"CONNECTIONSMAP": [],
}
Loading