Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| import inspect | |
| from pydantic import BaseModel | |
| from redstack.engines.validation import ValidationEngine | |
| def test_validation_engine_does_not_shadow_pydantic_validate() -> None: | |
| """Regression: the engine's ranking-check method must not be named | |
| ``validate`` -- that name is pydantic.BaseModel's own deprecated | |
| classmethod (``validate(value) -> Self``), and overriding it with an | |
| unrelated instance method is a Liskov violation (caught by mypy --strict | |
| as an incompatible override) that also makes ``ValidationEngine.validate`` | |
| silently stop behaving like the inherited pydantic API. | |
| """ | |
| assert hasattr(ValidationEngine, "validate_ranking") | |
| assert ValidationEngine.validate.__func__ is BaseModel.validate.__func__ | |
| sig = inspect.signature(ValidationEngine.validate_ranking) | |
| assert list(sig.parameters) == ["self", "ranking"] | |