test_extraneous_docstring_param.py
1 from pathlib import Path 2 3 from clint.config import Config 4 from clint.index import SymbolIndex 5 from clint.linter import Position, Range, lint_file 6 from clint.rules.extraneous_docstring_param import ExtraneousDocstringParam 7 8 9 def test_extraneous_docstring_param(index: SymbolIndex) -> None: 10 code = ''' 11 def bad_function(param1: str) -> None: 12 """ 13 Example function docstring. 14 15 Args: 16 param1: First parameter 17 param2: This parameter doesn't exist in function signature 18 param3: Another non-existent parameter 19 """ 20 21 def good_function(param1: str, param2: int) -> None: 22 """ 23 Good function with matching parameters. 24 25 Args: 26 param1: First parameter 27 param2: Second parameter 28 """ 29 ''' 30 config = Config(select={ExtraneousDocstringParam.name}) 31 violations = lint_file(Path("test.py"), code, config, index) 32 assert len(violations) == 1 33 assert all(isinstance(v.rule, ExtraneousDocstringParam) for v in violations) 34 assert violations[0].range == Range(Position(1, 0))