Coverage for mlos_bench/mlos_bench/tests/config/schemas/tunable-params/test_tunable_params_schemas.py: 100%

10 statements  

« prev     ^ index     » next       coverage.py v7.5.1, created at 2024-05-06 00:35 +0000

1# 

2# Copyright (c) Microsoft Corporation. 

3# Licensed under the MIT License. 

4# 

5""" 

6Tests for tunable params schema validation. 

7""" 

8 

9from os import path 

10 

11import pytest 

12 

13from mlos_bench.config.schemas import ConfigSchema 

14 

15from mlos_bench.tests.config.schemas import get_schema_test_cases, check_test_case_against_schema 

16 

17 

18# General testing strategy: 

19# - hand code a set of good/bad configs (useful to test editor schema checking) 

20# - for each config, load and validate against expected schema 

21 

22TEST_CASES = get_schema_test_cases(path.join(path.dirname(__file__), "test-cases")) 

23 

24 

25# Now we actually perform all of those validation tests. 

26 

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 """ 

30 Checks that the tunable params config validates against the schema. 

31 """ 

32 check_test_case_against_schema(TEST_CASES.by_path[test_case_name], ConfigSchema.TUNABLE_PARAMS) 

33 check_test_case_against_schema(TEST_CASES.by_path[test_case_name], ConfigSchema.UNIFIED)