test: add unit tests for Telegram bot (HMAC, retry recursion, /start flows)#175
Open
Alqku wants to merge 1 commit into
Open
test: add unit tests for Telegram bot (HMAC, retry recursion, /start flows)#175Alqku wants to merge 1 commit into
Alqku wants to merge 1 commit into
Conversation
Author
|
@github-actions re-run ci |
14d0b58 to
3857e41
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds
quantara/web_app/tests/test_telegram.pycovering the Telegram bot's critical logic (HMAC initData verification, retry recursion onTelegramRetryAfter, both/startflows, plus theexcept Exceptionbranch insend_health_ratio_notification). Uses deterministic mocking of aiogram Bot calls so the suite is hermetic and CI-friendly.Changes
tests/test_telegram.pycovers six scenarios forutils.check_telegram_authorization, five scenarios fornotifications.send_health_ratio_notification(including the non-retry exception path), and both the basic and deep-link/startflows fromhandlers/command.py.autouse=Truefixture snapshots and restoresnotifications.botto prevent cross-test pollution.HEALTH_RATIO_WARNING_MESSAGEso future refactors that drop the warning template are caught.Testing
python -m py_compileclean on the new test file.pytest-asynciois configured withasyncio_mode = "strict"inquantara/pyproject.tomlso every async test method is explicitly marked.bot.send_messageboundary; no network calls or bot token required.Closes #62