/ dev / clint / tests / rules / test_docstring_param_order.py
test_docstring_param_order.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.docstring_param_order import DocstringParamOrder
 7  
 8  
 9  def test_docstring_param_order(index: SymbolIndex) -> None:
10      code = """
11  # Bad
12  def f(x: int, y: str) -> None:
13      '''
14      Args:
15          y: Second param.
16          x: First param.
17      '''
18  
19  # Good
20  def f(a: int, b: str) -> None:
21      '''
22      Args:
23          a: First param.
24          b: Second param.
25      '''
26  """
27      config = Config(select={DocstringParamOrder.name})
28      violations = lint_file(Path("test.py"), code, config, index)
29      assert len(violations) == 1
30      assert all(isinstance(v.rule, DocstringParamOrder) for v in violations)
31      assert violations[0].range == Range(Position(2, 0))