32 lines
803 B
Python
32 lines
803 B
Python
from pathlib import Path
|
|
|
|
from clint.config import Config
|
|
from clint.index import SymbolIndex
|
|
from clint.linter import Position, Range, lint_file
|
|
from clint.rules.docstring_param_order import DocstringParamOrder
|
|
|
|
|
|
def test_docstring_param_order(index: SymbolIndex) -> None:
|
|
code = """
|
|
# Bad
|
|
def f(x: int, y: str) -> None:
|
|
'''
|
|
Args:
|
|
y: Second param.
|
|
x: First param.
|
|
'''
|
|
|
|
# Good
|
|
def f(a: int, b: str) -> None:
|
|
'''
|
|
Args:
|
|
a: First param.
|
|
b: Second param.
|
|
'''
|
|
"""
|
|
config = Config(select={DocstringParamOrder.name})
|
|
violations = lint_file(Path("test.py"), code, config, index)
|
|
assert len(violations) == 1
|
|
assert all(isinstance(v.rule, DocstringParamOrder) for v in violations)
|
|
assert violations[0].range == Range(Position(2, 0))
|