# SPDX-License-Identifier: Apache-2.0 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project import ast import pytest from tools.pre_commit.validate_config import validate_ast _TestConfig1 = """ @config class _TestConfig1: pass """ _TestConfig2 = ''' @config @dataclass class _TestConfig2: a: int """docstring""" ''' _TestConfig3 = """ @config @dataclass class _TestConfig3: a: int = 1 """ _TestConfig4 = ''' @config @dataclass class _TestConfig4: a: Union[Literal[1], Literal[2]] = 1 """docstring""" ''' @pytest.mark.parametrize( ("test_config", "expected_error"), [ (_TestConfig1, "must be a dataclass"), (_TestConfig2, "must have a default"), (_TestConfig3, "must have a docstring"), (_TestConfig4, "must use a single Literal"), ], ) def test_config(test_config, expected_error): tree = ast.parse(test_config) with pytest.raises(Exception, match=expected_error): validate_ast(tree)