Files
mlflow--mlflow/dev/clint/tests/rules/test_version_major_check.py
2026-07-13 13:22:34 +08:00

43 lines
1.3 KiB
Python

from pathlib import Path
from clint.config import Config
from clint.index import SymbolIndex
from clint.linter import lint_file
from clint.rules.version_major_check import MajorVersionCheck
def test_version_major_check(index: SymbolIndex) -> None:
code = """
from packaging.version import Version
Version("0.9.0") >= Version("1.0.0")
Version("1.2.3").major >= 1
Version("1.0.0") >= Version("0.83.0")
Version("1.5.0") >= Version("2.0.0")
Version("1.5.0") == Version("3.0.0")
Version("1.5.0") != Version("4.0.0")
"""
config = Config(select={MajorVersionCheck.name})
violations = lint_file(Path("test.py"), code, config, index)
assert len(violations) == 4
assert all(isinstance(v.rule, MajorVersionCheck) for v in violations)
assert violations[0].range.start.line == 3
assert violations[1].range.start.line == 6
assert violations[2].range.start.line == 7
assert violations[3].range.start.line == 8
def test_version_major_check_no_violations(index: SymbolIndex) -> None:
code = """
from packaging.version import Version
Version("1.2.3").major >= 1
Version("1.0.0") >= Version("0.83.0")
Version("1.5.0") >= Version("1.0.1")
Version("1.5.0") >= Version("1.0.0.dev0")
5 >= 3
"""
config = Config(select={MajorVersionCheck.name})
violations = lint_file(Path("test.py"), code, config, index)
assert len(violations) == 0