test_unknown_mlflow_arguments.py
1 from pathlib import Path 2 3 import pytest 4 from clint.config import Config 5 from clint.index import SymbolIndex 6 from clint.linter import Position, Range, lint_file 7 from clint.rules.unknown_mlflow_arguments import UnknownMlflowArguments 8 9 10 def test_unknown_mlflow_arguments(index: SymbolIndex) -> None: 11 code = ''' 12 def bad(): 13 """ 14 .. code-block:: python 15 16 import mlflow 17 18 mlflow.log_param(foo="bar") 19 20 """ 21 22 def good(): 23 """ 24 .. code-block:: python 25 26 import mlflow 27 28 mlflow.log_param(key="k", value="v") 29 """ 30 ''' 31 config = Config( 32 select={UnknownMlflowArguments.name}, 33 example_rules=[UnknownMlflowArguments.name], 34 ) 35 violations = lint_file(Path("test.py"), code, config, index) 36 assert len(violations) == 1 37 assert all(isinstance(v.rule, UnknownMlflowArguments) for v in violations) 38 assert violations[0].range == Range(Position(7, 8)) 39 40 41 @pytest.mark.parametrize("suffix", [".md", ".mdx"]) 42 def test_unknown_mlflow_arguments_markdown(index: SymbolIndex, suffix: str) -> None: 43 code = """ 44 # Bad 45 46 ```python 47 import mlflow 48 49 mlflow.log_param(foo="bar") 50 ``` 51 52 # Good 53 54 ```python 55 import mlflow 56 57 mlflow.log_param(key="k", value="v") 58 ``` 59 """ 60 config = Config( 61 select={UnknownMlflowArguments.name}, 62 example_rules=[UnknownMlflowArguments.name], 63 ) 64 violations = lint_file(Path("test").with_suffix(suffix), code, config, index) 65 assert len(violations) == 1 66 assert all(isinstance(v.rule, UnknownMlflowArguments) for v in violations) 67 assert violations[0].range == Range(Position(6, 0))