diff options
author | Daniƫl van Noord <13665637+DanielNoord@users.noreply.github.com> | 2021-09-04 18:52:55 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-04 18:52:55 +0200 |
commit | 25000863761220c1aa5db129e3cd41f5fe51b167 (patch) | |
tree | d211e4464a8aef25f969adffe7ba7cb6df8b8981 /tests/message | |
parent | 6c818310fd0e2396b6333ad623da577bf84e361e (diff) | |
download | pylint-git-25000863761220c1aa5db129e3cd41f5fe51b167.tar.gz |
Add typing with `PyAnnotate` to `./tests` (#4950)
* Add mypy_extensions to requirement for ``NoReturn``
Co-authored-by: Pierre Sassoulas <pierre.sassoulas@gmail.com>
Diffstat (limited to 'tests/message')
-rw-r--r-- | tests/message/conftest.py | 16 | ||||
-rw-r--r-- | tests/message/unittest_message.py | 9 | ||||
-rw-r--r-- | tests/message/unittest_message_definition.py | 20 | ||||
-rw-r--r-- | tests/message/unittest_message_definition_store.py | 32 | ||||
-rw-r--r-- | tests/message/unittest_message_id_store.py | 21 |
5 files changed, 58 insertions, 40 deletions
diff --git a/tests/message/conftest.py b/tests/message/conftest.py index 942119076..e30dbb535 100644 --- a/tests/message/conftest.py +++ b/tests/message/conftest.py @@ -3,10 +3,12 @@ # pylint: disable=redefined-outer-name +from typing import Dict, ValuesView + import pytest from pylint.checkers import BaseChecker -from pylint.message import MessageDefinitionStore, MessageIdStore +from pylint.message import MessageDefinition, MessageDefinitionStore, MessageIdStore @pytest.fixture @@ -20,12 +22,12 @@ def symbol(): @pytest.fixture -def empty_store(): +def empty_store() -> MessageDefinitionStore: return MessageDefinitionStore() @pytest.fixture -def store(): +def store() -> MessageDefinitionStore: store_ = MessageDefinitionStore() class Checker(BaseChecker): @@ -50,12 +52,12 @@ def store(): @pytest.fixture -def message_definitions(store): +def message_definitions(store: MessageDefinitionStore) -> ValuesView[MessageDefinition]: return store.messages @pytest.fixture -def msgids(): +def msgids() -> Dict[str, str]: return { "W1234": "warning-symbol", "W1235": "warning-symbol-two", @@ -65,12 +67,12 @@ def msgids(): @pytest.fixture -def empty_msgid_store(): +def empty_msgid_store() -> MessageIdStore: return MessageIdStore() @pytest.fixture -def msgid_store(msgids): +def msgid_store(msgids: Dict[str, str]) -> MessageIdStore: msgid_store = MessageIdStore() for msgid, symbol in msgids.items(): msgid_store.add_msgid_and_symbol(msgid, symbol) diff --git a/tests/message/unittest_message.py b/tests/message/unittest_message.py index 5a02c26a0..6f8b4aa01 100644 --- a/tests/message/unittest_message.py +++ b/tests/message/unittest_message.py @@ -1,11 +1,16 @@ # Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html # For details: https://github.com/PyCQA/pylint/blob/main/LICENSE +from typing import Dict, ValuesView + from pylint.message import Message +from pylint.message.message_definition import MessageDefinition -def test_new_message(message_definitions): - def build_message(message_definition, location_value): +def test_new_message(message_definitions: ValuesView[MessageDefinition]) -> None: + def build_message( + message_definition: MessageDefinition, location_value: Dict[str, str] + ) -> Message: return Message( symbol=message_definition.symbol, msg_id=message_definition.msgid, diff --git a/tests/message/unittest_message_definition.py b/tests/message/unittest_message_definition.py index 743499424..2015c2154 100644 --- a/tests/message/unittest_message_definition.py +++ b/tests/message/unittest_message_definition.py @@ -46,7 +46,7 @@ class FalseChecker(BaseChecker): class TestMessagesDefinition: @staticmethod - def assert_with_fail_msg(msg, expected=True): + def assert_with_fail_msg(msg: MessageDefinition, expected: bool = True) -> None: fail_msg = ( f"With minversion='{msg.minversion}' and maxversion='{msg.maxversion}'," f" and the python interpreter being {sys.version_info} " @@ -58,19 +58,19 @@ class TestMessagesDefinition: assert not msg.may_be_emitted(), fail_msg.format(" not ") @staticmethod - def get_message_definition(): - args = [ + def get_message_definition() -> MessageDefinition: + kwargs = {"minversion": None, "maxversion": None} + return MessageDefinition( FalseChecker(), "W1234", "message", "description", "msg-symbol", WarningScope.NODE, - ] - kwargs = {"minversion": None, "maxversion": None} - return MessageDefinition(*args, **kwargs) + **kwargs, + ) - def test_may_be_emitted(self): + def test_may_be_emitted(self) -> None: major = sys.version_info.major minor = sys.version_info.minor msg = self.get_message_definition() @@ -85,7 +85,7 @@ class TestMessagesDefinition: msg.maxversion = (major, minor - 1) self.assert_with_fail_msg(msg, expected=False) - def test_repr(self): + def test_repr(self) -> None: msg = self.get_message_definition() repr_str = str([msg, msg]) assert "W1234" in repr_str @@ -93,7 +93,7 @@ class TestMessagesDefinition: expected = "[MessageDefinition:msg-symbol-one (W1234), MessageDefinition:msg-symbol-two (W1235)]" assert str(FalseChecker().messages) == expected - def test_str(self): + def test_str(self) -> None: msg = self.get_message_definition() str_msg = str(msg) assert "W1234" in str_msg @@ -102,7 +102,7 @@ class TestMessagesDefinition: message one msg description""" assert str(FalseChecker().messages[0]) == expected - def test_format_help(self): + def test_format_help(self) -> None: msg = self.get_message_definition() major = sys.version_info.major minor = sys.version_info.minor diff --git a/tests/message/unittest_message_definition_store.py b/tests/message/unittest_message_definition_store.py index a08ca7c86..4d108489e 100644 --- a/tests/message/unittest_message_definition_store.py +++ b/tests/message/unittest_message_definition_store.py @@ -5,10 +5,12 @@ from contextlib import redirect_stdout from io import StringIO import pytest +from _pytest.capture import CaptureFixture from pylint.checkers import BaseChecker from pylint.exceptions import InvalidMessageError, UnknownMessageError from pylint.message import MessageDefinition +from pylint.message.message_definition_store import MessageDefinitionStore @pytest.mark.parametrize( @@ -126,7 +128,9 @@ def test_register_error(empty_store, messages, expected): assert str(cm.value) == expected -def test_register_error_new_id_duplicate_of_new(empty_store): +def test_register_error_new_id_duplicate_of_new( + empty_store: MessageDefinitionStore, +) -> None: class CheckerOne(BaseChecker): name = "checker_one" msgs = {"W1234": ("message one", "msg-symbol-one", "msg description.")} @@ -143,7 +147,7 @@ def test_register_error_new_id_duplicate_of_new(empty_store): ) -def test_format_help(capsys, store): +def test_format_help(capsys: CaptureFixture, store: MessageDefinitionStore) -> None: store.help_message([]) captured = capsys.readouterr() assert captured.out == "" @@ -165,12 +169,12 @@ No such message id or symbol 'C1234'. ) -def test_get_msg_display_string(store): +def test_get_msg_display_string(store: MessageDefinitionStore) -> None: assert store.get_msg_display_string("W1234") == "'msg-symbol'" assert store.get_msg_display_string("E1234") == "'duplicate-keyword-arg'" -def test_check_message_id(store): +def test_check_message_id(store: MessageDefinitionStore) -> None: w1234 = store.get_message_definitions("W1234")[0] w0001 = store.get_message_definitions("W0001")[0] e1234 = store.get_message_definitions("E1234")[0] @@ -185,10 +189,12 @@ def test_check_message_id(store): class TestMessageDefinitionStore: @staticmethod - def _compare_messages(desc, msg, checkerref=False): + def _compare_messages( + desc: str, msg: MessageDefinition, checkerref: bool = False + ) -> None: assert desc == msg.format_help(checkerref=checkerref) - def test_message_help(self, store): + def test_message_help(self, store: MessageDefinitionStore) -> None: message_definition = store.get_message_definitions("W1234")[0] self._compare_messages( """:msg-symbol (W1234): *message* @@ -203,7 +209,7 @@ class TestMessageDefinitionStore: checkerref=False, ) - def test_message_help_minmax(self, store): + def test_message_help_minmax(self, store: MessageDefinitionStore) -> None: # build the message manually to be python version independent message_definition = store.get_message_definitions("E1234")[0] self._compare_messages( @@ -223,7 +229,7 @@ class TestMessageDefinitionStore: ) -def test_list_messages(store): +def test_list_messages(store: MessageDefinitionStore) -> None: output = StringIO() with redirect_stdout(output): store.list_messages() @@ -231,12 +237,12 @@ def test_list_messages(store): assert ":msg-symbol (W1234): *message*" in output.getvalue() -def test_renamed_message_register(store): +def test_renamed_message_register(store: MessageDefinitionStore) -> None: assert store.get_message_definitions("W0001")[0].symbol == "msg-symbol" assert store.get_message_definitions("old-symbol")[0].symbol == "msg-symbol" -def test_multiple_child_of_old_name(store): +def test_multiple_child_of_old_name(store: MessageDefinitionStore) -> None: """We can define multiple name with the same old name.""" class FamillyChecker(BaseChecker): @@ -263,7 +269,5 @@ def test_multiple_child_of_old_name(store): assert len(mother) == 2 assert len(child) == 1 assert len(other_child) == 1 - child = child[0] - other_child = other_child[0] - assert child in mother - assert other_child in mother + assert child[0] in mother + assert other_child[0] in mother diff --git a/tests/message/unittest_message_id_store.py b/tests/message/unittest_message_id_store.py index e61aba66b..340b23d32 100644 --- a/tests/message/unittest_message_id_store.py +++ b/tests/message/unittest_message_id_store.py @@ -1,12 +1,16 @@ # Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html # For details: https://github.com/PyCQA/pylint/blob/main/LICENSE +from typing import Dict, ValuesView + import pytest from pylint.exceptions import InvalidMessageError, UnknownMessageError +from pylint.message.message_definition import MessageDefinition +from pylint.message.message_id_store import MessageIdStore -def test_len_str(msgid_store, msgids): +def test_len_str(msgid_store: MessageIdStore, msgids: Dict[str, str]) -> None: assert len(msgid_store) == len(msgids) str_result = str(msgid_store) assert "MessageIdStore: [" in str_result @@ -17,7 +21,7 @@ def test_len_str(msgid_store, msgids): assert "]" in str_result -def test_get_message_ids(msgid_store, msgids): +def test_get_message_ids(msgid_store: MessageIdStore, msgids: Dict[str, str]) -> None: """We can get message id even with capitalization problem.""" msgid = list(msgids.keys())[0] msgids_result = msgid_store.get_active_msgids(msgid.lower()) @@ -25,14 +29,17 @@ def test_get_message_ids(msgid_store, msgids): assert msgid == msgids_result[0] -def test_get_message_ids_not_existing(empty_msgid_store): +def test_get_message_ids_not_existing(empty_msgid_store: MessageIdStore) -> None: with pytest.raises(UnknownMessageError) as error: w9876 = "W9876" empty_msgid_store.get_active_msgids(w9876) assert w9876 in str(error.value) -def test_register_message_definitions(empty_msgid_store, message_definitions): +def test_register_message_definitions( + empty_msgid_store: MessageIdStore, + message_definitions: ValuesView[MessageDefinition], +) -> None: number_of_msgid = len(message_definitions) for message_definition in message_definitions: empty_msgid_store.register_message_definition( @@ -45,7 +52,7 @@ def test_register_message_definitions(empty_msgid_store, message_definitions): assert len(empty_msgid_store) == number_of_msgid -def test_add_msgid_and_symbol(empty_msgid_store): +def test_add_msgid_and_symbol(empty_msgid_store: MessageIdStore) -> None: empty_msgid_store.add_msgid_and_symbol("E1235", "new-sckiil") empty_msgid_store.add_legacy_msgid_and_symbol("C1235", "old-sckiil", "E1235") assert len(empty_msgid_store) == 2 @@ -65,7 +72,7 @@ def test_add_msgid_and_symbol(empty_msgid_store): empty_msgid_store.get_msgid("not-exist") -def test_duplicate_symbol(empty_msgid_store): +def test_duplicate_symbol(empty_msgid_store: MessageIdStore) -> None: empty_msgid_store.add_msgid_and_symbol("W1234", "warning-symbol") with pytest.raises(InvalidMessageError) as error: empty_msgid_store.check_msgid_and_symbol("W1234", "other-symbol") @@ -75,7 +82,7 @@ def test_duplicate_symbol(empty_msgid_store): ) -def test_duplicate_msgid(msgid_store): +def test_duplicate_msgid(msgid_store: MessageIdStore) -> None: msgid_store.add_msgid_and_symbol("W1234", "warning-symbol") with pytest.raises(InvalidMessageError) as error: msgid_store.check_msgid_and_symbol("W1235", "warning-symbol") |