From 062325255b15e71b78a586af620678d91c4085d4 Mon Sep 17 00:00:00 2001 From: Vishwesh Pillai Date: Fri, 17 Mar 2023 11:21:34 -0700 Subject: [PATCH] test_buttons: Add test for PMButton button text. --- tests/ui_tools/test_buttons.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/ui_tools/test_buttons.py b/tests/ui_tools/test_buttons.py index d314ae46dcf..486e5037279 100644 --- a/tests/ui_tools/test_buttons.py +++ b/tests/ui_tools/test_buttons.py @@ -1,3 +1,4 @@ +import re from typing import Any, Callable, Dict, List, Optional, Tuple, Union import pytest @@ -13,6 +14,7 @@ EmojiButton, MessageLinkButton, ParsedNarrowLink, + PMButton, StarredButton, StreamButton, TopButton, @@ -178,6 +180,17 @@ def test_update_widget( set_attr_map.assert_called_once_with({None: top_button.label_style}) +class TestPMButton: + def test_button_text(self, mocker: MockerFixture, count: int = 10) -> None: + pm_button = PMButton(controller=mocker.Mock(), count=count) + title_text = pm_button.label_text[:-3].strip() + hotkey_text = pm_button.label_text[-3:] + # regex checks fixed length = 20, title capitalization, and presence of hotkey + pattern = re.compile(r"(?=.{20}$)[A-Z].{1,15}[ ]{1,16}\[.\]") + assert pattern.match(pm_button.label_text), "Button text does not match regex" + assert title_text == "Direct messages" and hotkey_text == "[P]" + + class TestStarredButton: def test_count_style_init_argument_value( self, mocker: MockerFixture, count: int = 10