Callbackquery auto answer
Описание
Данный MR добавляет в стейт-машину Private chats автоматический вызов CallBackQuery.answer(), что, исходя из документации Telegram API, необходимо для того, чтобы нажатые кнопки inline-клавиатуры в диалоге с Телеграм-ботом переставали подсвечиваться. Добавлена возможность отключать автоматический вызов CallBackQuery.answer() для определенных стейтов.
Добавлен вызов CallBackQuery.answer() в метод process_tg_update класса ActivePrivateChatSession. Добавлен декоратор cancel_callbackquery_auto_answer, отключающий вызов CallBackQuery.answer() в стейт-машине для декорированного стейта.
Добавлен автотест для PrivateChatStateMachine, покрывающий случай обработки CallBackQuery в стейте с отключенным авто-ответом на CallBackQuery. В автотест для PrivateChatStateMachine, проверяющий обработку CallBackQuery в обычных стейтах, добавлена проверка на отправку запроса answerCallBackQuery.
Документация CallbackQuery, обоснование необходимости использовать метод answerCallBackQuery в разделе NOTE. Issue по поводу мерцания кнопок.
Чеклист к описанию MR:
-
В описании MR указана польза от изменений: кто получит пользу и почему он хочет этого -
В описании MR указаны ссылки на соответствующие issues в GitLab, если есть -
В описании MR приложены фрагменты переписки и/или ссылки на обсуждения, если такие велись за пределами GitLab Issues
Чеклист к коду в репозитории:
-
Новый код покрыт автотестами -
К каждому новому автотесту в docstring описана функция и история в формате Product Flow -
Документы Product Flow проверены и обновлены, если требуется -
новый код совместим с !extensionк старым концептам -
новый код не влезает в !exclusionк старым концептам -
добавлены новые !exampleв концепты, если требуется
-
-
Дока в README перечитана и обновлена, если требуется -
Дока в CONTRIBUTING.md перечитана и обновлена, если требуется -
Дока в sphinx_docs/source/index.rst перечитана и обновлена, если требуется -
Обновлён файл CHANGES.md