fix(logging): write raw updates in production too
This commit is contained in:
1 parent
57f4c6cb4f
commit
d212e60eab
3 files changed
+19
-17
No files matched your search
@@ -255,8 +255,11 @@ def is_development_environment() -> bool:
|
|||||||
|
|
||||||
|
|
||||||
def configure_raw_update_logging(dispatcher: Dispatcher) -> bool:
|
def configure_raw_update_logging(dispatcher: Dispatcher) -> bool:
|
||||||
if not is_development_environment():
|
"""Persist incoming updates for diagnostics in every deploy environment.
|
||||||
return False
|
|
||||||
|
Групповые события (администрирование и поддержка) видно только через
|
||||||
|
мидлваре — без него прод-бот остаётся «чёрным ящиком».
|
||||||
|
"""
|
||||||
dispatcher.update.outer_middleware(RawUpdateMiddleware())
|
dispatcher.update.outer_middleware(RawUpdateMiddleware())
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@@ -1660,8 +1663,9 @@ async def main() -> None:
|
|||||||
analytics.init_db()
|
analytics.init_db()
|
||||||
payments.init_payments_table()
|
payments.init_payments_table()
|
||||||
await asyncio.to_thread(support.init_support_table)
|
await asyncio.to_thread(support.init_support_table)
|
||||||
if is_development_environment():
|
# Инициализируем БД сырых апдейтов в любом окружении: в проде она нужна,
|
||||||
await asyncio.to_thread(init_raw_updates_db)
|
# чтобы видеть события из групп администрирования и поддержки.
|
||||||
|
await asyncio.to_thread(init_raw_updates_db)
|
||||||
token = os.environ.get("BOT_TOKEN", "").strip()
|
token = os.environ.get("BOT_TOKEN", "").strip()
|
||||||
if not token:
|
if not token:
|
||||||
raise RuntimeError("BOT_TOKEN is required")
|
raise RuntimeError("BOT_TOKEN is required")
|
||||||
|
|||||||
+10
-12
@@ -92,15 +92,13 @@ class RawUpdateMiddlewareTests(unittest.IsolatedAsyncioTestCase):
|
|||||||
|
|
||||||
|
|
||||||
class RawUpdateModeTests(unittest.TestCase):
|
class RawUpdateModeTests(unittest.TestCase):
|
||||||
def test_middleware_is_registered_only_for_development(self):
|
def test_middleware_is_registered_in_every_environment(self):
|
||||||
dispatcher = Dispatcher()
|
"""Прод-бот тоже пишет сырые апдейты: групповые события видны только так."""
|
||||||
with patch.object(bot, "DEPLOY_ENV", "production"), patch.object(
|
for deploy_env in ("production", "development"):
|
||||||
dispatcher.update, "outer_middleware"
|
with self.subTest(deploy_env=deploy_env):
|
||||||
) as register:
|
dispatcher = Dispatcher()
|
||||||
self.assertFalse(bot.configure_raw_update_logging(dispatcher))
|
with patch.object(bot, "DEPLOY_ENV", deploy_env), patch.object(
|
||||||
register.assert_not_called()
|
dispatcher.update, "outer_middleware"
|
||||||
with patch.object(bot, "DEPLOY_ENV", "development"), patch.object(
|
) as register:
|
||||||
dispatcher.update, "outer_middleware"
|
self.assertTrue(bot.configure_raw_update_logging(dispatcher))
|
||||||
) as register:
|
register.assert_called_once()
|
||||||
self.assertTrue(bot.configure_raw_update_logging(dispatcher))
|
|
||||||
register.assert_called_once()
|
|
||||||
Reference in new issue
Block a user