Напоминалки: тест конвертации не должен зависеть от пояса сервера
По ревью Task 5: test_reminder_creation_converts_author_local_time_to_server сравнивал результат с server_utc_offset_hours() самой машины, на которой запускается тест. Так как сервер в этом окружении сам в UTC+3 — совпадающем с поясом автора в тесте, — разница смещений была 0, и тест проходил бы даже если бы конвертация вообще не выполнялась. Фикс: подменяем server_utc_offset_hours на фиксированное значение (0), заведомо отличное от пояса автора (3), чтобы тест реально ловил регрессию независимо от машины. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+5
-2
@@ -1,5 +1,4 @@
|
|||||||
import bot
|
import bot
|
||||||
import reminders
|
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
|
|
||||||
|
|
||||||
@@ -464,6 +463,10 @@ def test_reminder_creation_converts_author_local_time_to_server(app, monkeypatch
|
|||||||
admin = 80007
|
admin = 80007
|
||||||
monkeypatch.setattr(bot.config, "ADMIN_IDS", [admin])
|
monkeypatch.setattr(bot.config, "ADMIN_IDS", [admin])
|
||||||
bot.db.set_admin_tz_offset(admin, 3) # пояс уже задан — гейт не мешает
|
bot.db.set_admin_tz_offset(admin, 3) # пояс уже задан — гейт не мешает
|
||||||
|
# Фиксируем "серверный" пояс отдельно от пояса автора (0 != 3), чтобы тест
|
||||||
|
# не проходил случайно из-за совпадения с реальным поясом машины, где он
|
||||||
|
# запускается — иначе он ничего не проверял бы, если сервер сам в UTC+3.
|
||||||
|
monkeypatch.setattr(bot, "server_utc_offset_hours", lambda: 0)
|
||||||
|
|
||||||
app.handle_message(admin, "⏰ Напоминалки")
|
app.handle_message(admin, "⏰ Напоминалки")
|
||||||
app.handle_message(admin, "➕ Добавить")
|
app.handle_message(admin, "➕ Добавить")
|
||||||
@@ -474,7 +477,7 @@ def test_reminder_creation_converts_author_local_time_to_server(app, monkeypatch
|
|||||||
|
|
||||||
rows = bot.db.get_active_reminders()
|
rows = bot.db.get_active_reminders()
|
||||||
stored = datetime.strptime(rows[0]["remind_at"], "%Y-%m-%d %H:%M:%S")
|
stored = datetime.strptime(rows[0]["remind_at"], "%Y-%m-%d %H:%M:%S")
|
||||||
server_offset = reminders.server_utc_offset_hours()
|
server_offset = 0
|
||||||
expected = datetime(2099, 6, 1, 9, 0) + timedelta(hours=(server_offset - 3))
|
expected = datetime(2099, 6, 1, 9, 0) + timedelta(hours=(server_offset - 3))
|
||||||
assert stored == expected
|
assert stored == expected
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user