diff options
Diffstat (limited to 'tests/unit/keyinput/test_basekeyparser.py')
-rw-r--r-- | tests/unit/keyinput/test_basekeyparser.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/unit/keyinput/test_basekeyparser.py b/tests/unit/keyinput/test_basekeyparser.py index 68239d4b4..ec7c225bf 100644 --- a/tests/unit/keyinput/test_basekeyparser.py +++ b/tests/unit/keyinput/test_basekeyparser.py @@ -4,6 +4,9 @@ """Tests for BaseKeyParser.""" +import logging +import re +import sys from unittest import mock from qutebrowser.qt.core import Qt @@ -342,3 +345,20 @@ def test_respect_config_when_matching_counts(keyparser, config_stub): assert not keyparser._sequence assert not keyparser._count + + +def test_count_limit_exceeded(handle_text, keyparser, caplog): + try: + max_digits = sys.get_int_max_str_digits() + except AttributeError: + pytest.skip('sys.get_int_max_str_digits() not available') + + keys = (max_digits + 1) * [Qt.Key.Key_1] + + with caplog.at_level(logging.ERROR): + handle_text(keyparser, *keys, Qt.Key.Key_B, Qt.Key.Key_A) + + pattern = re.compile(r"^Failed to parse count: Exceeds the limit .* for integer string conversion: .*") + assert any(pattern.fullmatch(msg) for msg in caplog.messages) + assert not keyparser._sequence + assert not keyparser._count |