feat: возможность для пользователя передать action как строку#118
feat: возможность для пользователя передать action как строку#118someqst wants to merge 6 commits intolove-apples:mainfrom
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
f1e2ce9 to
b728e3e
Compare
Olegt0rr
left a comment
There was a problem hiding this comment.
Изменение небольшое и понятное, но есть пара моментов.
Тесты — PR #119 идёт в связке с этим, и там полноценные тесты на валидацию. Здесь тестов нет. Хотелось бы хотя бы два: передать валидную строку "typing_on" и проверить что всё ок; передать невалидную — убедиться что летит ValueError с понятным сообщением.
Поведение при SenderAction — если передать уже готовый SenderAction.TYPING_ON, он прогоняется через SenderAction(action) ещё раз. Для StrEnum это работает, но немного избыточно. Можно добавить isinstance(action, SenderAction) и не конвертировать тогда вообще. Не критично, но аккуратнее.
Жду тесты)
|
@Olegt0rr |
|
methods/send_action.py на строке 32 всё ещё принимает только SenderAction, хотя этот класс публично документирован через docs/methods/send_action.md. Поэтому bot.send_action(action="typing_on") теперь работает, а прямой вызов SendAction(bot, action="typing_on").fetch() всё ещё упадёт на self.action.value. Лучше перенести нормализацию строки в SendAction.init или общий helper, чтобы оба публичных входа вели себя одинаково. |
There was a problem hiding this comment.
Pull request overview
PR добавляет более удобный интерфейс для Bot.send_action(): теперь action можно передавать не только как SenderAction, но и как строку (значение enum), с тестами на валидные/невалидные строки.
Changes:
- Расширен тип параметра
actionвBot.send_actionдоSenderAction | strи добавлена конвертация строки вSenderAction. - Добавлено сообщение об ошибке для невалидной строки
actionсо списком допустимых значений. - Добавлены unit-тесты для
send_actionсо строковымaction(валидный/невалидный) и вызова без явногоaction.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
maxapi/bot.py |
Принимает action как SenderAction или строку и валидирует/конвертирует перед вызовом SendAction. |
tests/test_bot.py |
Добавляет тесты для строкового action и дефолтного поведения. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Столкнулся с проблемой, что ожидается StrEnum SenderAction при попытке вызова метода send_action.
Думаю, было бы неплохо позволить пользователю присылать action строкой, дабы увеличить удобство использования метода.