Description
By now, TGs dedicated test environment is more prominently documented. Adding native support for it in PTB could be a desribale feature.
⚠️ Current status
This feature is currently not on any roadmap, since it doesn't seem to be widely used. If you would like for PTB to have this feature, please react with a 👍 to the comment. If we see a large number of requests, this issue will likely get put on a roadmap.
Edit: One can trick PTB into using the test env by setting token='<token>/test'
. But this hack is not guaranteed to keep working in future versions of PTB …
Count of thumbs up over time, status 2024-12-31:
For future reference: GraphQL query to get the data
{
repository(owner: "python-telegram-bot", name: "python-telegram-bot") {
issue(number: 3355) {
reactions(first: 100) {
nodes{
content
createdAt
user {
login
}
}
}
}
}
}
Open Questions
We should check how the url returned by get_file
behave, i.e. if they are still https://api.telegram.org/file/bot<Token>/…
or if they are e.g. https://api.telegram.org/file/bot<token>/test/…
.
Implementation options
Just quickly listing two options that come to my mind
A test_env
flag
That would work via ApplicationBuilder().token(…).test_env(True)
or Bot(…, test_env=True)
. This would be non-breaking. However, if may not play nicely with custom base_file_url
depending on what we find out about file urls.
Allow custom insertion of token into base(_file)_url
That could either work by requesting the user to pass something like base_url = 'api.telegram.org/bot{token}/'
(this would be a breaking change) or by allowing the user to pass a Callable[[str], str]
that accepts the token and returns the (file_)url (this could be implemented in a non-breaking manner)