Contributor
Fixes
Closes #5021
Check-list for PRs
- Added
.. versionadded:: NEXT.VERSION,.. versionchanged:: NEXT.VERSION,.. deprecated:: NEXT.VERSIONor ``.. versionremoved:: NEXT.VERSION` to the docstrings for user facing changes (for methods/class descriptions, arguments and attributes) - Created new or adapted existing unit tests
- Documented code changes according to the CSI standard
- Added myself alphabetically to
AUTHORS.rst(optional) - Added new classes & modules to the docs and all suitable
__all__s - Checked the Stability Policy in case of deprecations or changes to documented behavior
If the PR contains API changes (otherwise, you can ignore this passage) - N/A
-
New Classes
- Added
self._id_attrsand corresponding documentation - init accepts
api_kwargsas keyword-only
- Added
-
Added New Shortcuts
- In
telegram.Chat&telegram.Userfor all methods that acceptchat/user_id - In
telegram.Messagefor all methods that acceptchat_idandmessage_id - For new
telegram.Messageshortcuts: Addedquoteargument if methods acceptreply_to_message_id - In
telegram.CallbackQueryfor all methods that accept eitherchat_idandmessage_idorinline_message_id
- In
-
If Relevant
- Added new constants at
telegram.constantsand shortcuts to them as class variables - Linked new and existing constants in docstrings instead of hard-coded numbers and strings
- Added new message types to
telegram.Message.effective_attachment - Added new handlers for new update types
- Added the handlers to the warning loop in the
telegram.ext.ConversationHandler
- Added the handlers to the warning loop in the
- Added new filters for new message (sub)types
- Added or updated documentation for the changed class(es) and/or method(s)
- Added the new method(s) to
_extbot.py - Added or updated
bot_methods.rst - Updated the Bot API version number in all places:
README.rst(including the badge) andtelegram.constants.BOT_API_VERSION_INFO - Added logic for arbitrary callback data in
telegram.ext.ExtBotfor new methods that either accept areply_markupin some form or have a return type that is/containstelegram.Message
- Added new constants at
Contribution by Gittensor, learn more at https://gittensor.io/
Member
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey, thanks for the PR!
I've left some comments. In addition to that, we'll need new unit tests that cover the changes. If you need some pointers on where to get started, please let me know.
Member
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the updates. I've left some new comments below. Please let me know in case you have any questions on them. In addition
- please have a look at the test coverage report https://app.codecov.io/gh/python-telegram-bot/python-telegram-bot/pull/5030. It should also show in the CI checks on github usually. Don't know why it doesn't so far …
- please add a file
changes/unreleased/5030.bBRC3598kUYHL2Qpo4gjMb.tomlwith the content
bugfixes = "Fix a Bug in Initialization Logic of ``Bot``" [[pull_requests]] uid = "5030" author_uids = ["codomposer"] closes_threads = ["5021"]
Member
@codomposer Hey. I will come back to this, when I have the time and mental capacity for it, yes.
Member
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi. I've just 2 small comments open. Thanks very much for the updates and sorry for the delay in review - busy week …
Contributor Author
Hi. I've just 2 small comments open. Thanks very much for the updates and sorry for the delay in review - busy week …
comments addressed, can you please check it? @Bibo-Joshi
Member
Hi. Unfortunately, the if-clause is still not correctly covered. Please use pytest-cov locally to compute the coverage and verify that the case is covered. If you need help with that, please reach out. This week, I'm unlikely to have to to dig into that myself …
Contributor Author
Hi. Unfortunately, the if-clause is still not correctly covered. Please use pytest-cov locally to compute the coverage and verify that the case is covered. If you need help with that, please reach out. This week, I'm unlikely to have to to dig into that myself …
@Bibo-Joshi
I've pushed update to cover test_initialize_with_bot_already_initialized_but_not_requests,
can you comment under codeblocks that are missing test coverage if any?
thanks
Member
Ah, I see my mistake now: get_me can only be called if the request init already succeeded and only then can _bot_initialized become True. This means that we simply don't need the if not self._bot_initialized check. In the test this shows because you can only catch the current edge case by adapting the internals of Bot, not by mocking the methods called by Bot.init.
TL;DR: please revert your last commit and instead remove the mentioned if-clause. Please excuse the confusion.
Contributor Author
Ah, I see my mistake now:
get_mecan only be called if the request init already succeeded and only then can_bot_initializedbecomeTrue. This means that we simply don't need theif not self._bot_initializedcheck. In the test this shows because you can only catch the current edge case by adapting the internals of Bot, not by mocking the methods called byBot.init. TL;DR: please revert your last commit and instead remove the mentioned if-clause. Please excuse the confusion.
done