Sync from v0.13
This commit is contained in:
0
tests/tools/__init__.py
Normal file
0
tests/tools/__init__.py
Normal file
52
tests/tools/test_config_validator.py
Normal file
52
tests/tools/test_config_validator.py
Normal file
@@ -0,0 +1,52 @@
|
||||
# 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)
|
||||
Reference in New Issue
Block a user