Skip to content

Commit 8b144c9

Browse files
committed
fix: filter benchmarks with None benchmark_id before validation
Filter out benchmark entries with None/empty benchmark_id to support conditional env var syntax like ${env.VAR:+value}. Signed-off-by: Mustafa Elbehery <melbeher@redhat.com>
1 parent 36322ec commit 8b144c9

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

src/llama_stack/core/configure.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,4 +200,13 @@ def parse_and_maybe_upgrade_config(config_dict: dict[str, Any]) -> StackConfig:
200200
config_dict["version"] = LLAMA_STACK_RUN_CONFIG_VERSION
201201

202202
processed_config_dict = replace_env_vars(config_dict)
203+
204+
if (
205+
"registered_resources" in processed_config_dict
206+
and "benchmarks" in processed_config_dict["registered_resources"]
207+
):
208+
processed_config_dict["registered_resources"]["benchmarks"] = [
209+
b for b in processed_config_dict["registered_resources"]["benchmarks"] if b.get("benchmark_id")
210+
]
211+
203212
return StackConfig(**cast_image_name_to_string(processed_config_dict))

tests/unit/cli/test_stack_config.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,3 +312,32 @@ def test_providers_flag_generates_config_with_api_keys():
312312
assert openai_provider["config"], "Provider config should not be empty"
313313
assert "api_key" in openai_provider["config"], "API key should be in provider config"
314314
assert "base_url" in openai_provider["config"], "Base URL should be in provider config"
315+
316+
317+
def test_parse_and_maybe_upgrade_config_filters_disabled_benchmarks(up_to_date_config):
318+
"""Test that parse_and_maybe_upgrade_config filters out benchmarks with None benchmark_id.
319+
320+
This tests the full integration of the fix for conditional env vars like
321+
${env.VAR:+value} that resolve to None.
322+
"""
323+
up_to_date_config["registered_resources"] = {
324+
"benchmarks": [
325+
{
326+
"benchmark_id": None,
327+
"dataset_id": "garak",
328+
"scoring_functions": ["garak_scoring"],
329+
"provider_id": "trustyai_garak_remote",
330+
},
331+
{
332+
"benchmark_id": "valid-benchmark",
333+
"dataset_id": "test",
334+
"scoring_functions": ["test_scoring"],
335+
"provider_id": "test_provider",
336+
},
337+
]
338+
}
339+
340+
result = parse_and_maybe_upgrade_config(up_to_date_config)
341+
342+
assert len(result.registered_resources.benchmarks) == 1
343+
assert result.registered_resources.benchmarks[0].benchmark_id == "valid-benchmark"

0 commit comments

Comments
 (0)