/ dev / clint / tests / rules / test_extraneous_docstring_param.py
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))