Coverage for mlos_bench/mlos_bench/tests/config/schemas/tunable-params/test_tunable_params_schemas.py: 100%
9 statements
« prev ^ index » next coverage.py v7.6.9, created at 2024-12-20 00:44 +0000
« prev ^ index » next coverage.py v7.6.9, created at 2024-12-20 00:44 +0000
1#
2# Copyright (c) Microsoft Corporation.
3# Licensed under the MIT License.
4#
5"""Tests for tunable params schema validation."""
7from os import path
9import pytest
11from mlos_bench.config.schemas import ConfigSchema
12from mlos_bench.tests.config.schemas import (
13 check_test_case_against_schema,
14 get_schema_test_cases,
15)
17# General testing strategy:
18# - hand code a set of good/bad configs (useful to test editor schema checking)
19# - for each config, load and validate against expected schema
21TEST_CASES = get_schema_test_cases(path.join(path.dirname(__file__), "test-cases"))
24# Now we actually perform all of those validation tests.
27@pytest.mark.parametrize("test_case_name", sorted(TEST_CASES.by_path))
28def test_tunable_params_configs_against_schema(test_case_name: str) -> None:
29 """Checks that the tunable params config validates against the schema."""
30 check_test_case_against_schema(TEST_CASES.by_path[test_case_name], ConfigSchema.TUNABLE_PARAMS)
31 check_test_case_against_schema(TEST_CASES.by_path[test_case_name], ConfigSchema.UNIFIED)