def test_base_checker_ordering() -> None: """Test ordering of checkers based on their __gt__ method.""" linter = PyLinter() fake_checker_1 = OtherBasicChecker() fake_checker_2 = LessBasicChecker() fake_checker_3 = DifferentBasicChecker() import_checker = ImportsChecker(linter) while_checker = WhileChecker(linter) type_checker = TypeChecker(linter) list_of_checkers = [ 1, fake_checker_1, fake_checker_2, fake_checker_3, type_checker, import_checker, while_checker, linter, ] assert sorted(list_of_checkers) == [ # type: ignore[type-var] linter, import_checker, type_checker, fake_checker_3, fake_checker_1, fake_checker_2, while_checker, 1, ] assert fake_checker_1 > fake_checker_3 assert fake_checker_2 > fake_checker_3 assert fake_checker_1 == fake_checker_2
def __init__(self) -> None: super().__init__(PyLinter())
from pylint.lint.pylinter import PyLinter from pylint.message._deleted_message_ids import DELETED_MSGID_PREFIXES def register_all_checkers_and_plugins(linter: PyLinter) -> None: """Registers all checkers and plugins.""" linter.cmdline_parser.set_conflict_handler("resolve") initialize_checkers(linter) initialize_extensions(linter) def get_next_code_category(message_ids: list[str]) -> int: categories = sorted({int(i[:2]) for i in message_ids}) # We add the prefixes for deleted checkers categories += DELETED_MSGID_PREFIXES for i in categories: if i + 1 not in categories: return i + 1 return categories[-1] + 1 if __name__ == "__main__": pylinter = PyLinter() register_all_checkers_and_plugins(pylinter) messages = sorted(i.msgid[1:] for i in pylinter.msgs_store.messages) next_category = get_next_code_category(messages) print(f"Next free message id category is {next_category:02}") print( f"Please use {next_category:02}01 for the first message of the new checker" )
def test_load_text_repoter_if_not_provided() -> None: """Test if PyLinter.reporter is a TextReporter if no reporter is provided""" linter = PyLinter() assert isinstance(linter.reporter, TextReporter)