fix(tariff-worker): match premium bandwidth stats by username, not uuid

This commit is contained in:
3252a8
2026-05-12 11:20:23 +03:00
parent 00a0792c35
commit 8af59750c6
2 changed files with 45 additions and 9 deletions
+16 -6
View File
@@ -148,7 +148,7 @@ class TariffWorkerTests(unittest.IsolatedAsyncioTestCase):
return_value={
"topUsers": [
{
"user": {"uuid": "panel-uuid"},
"username": "tg_123",
"total": 2 * (1024**3),
}
]
@@ -176,7 +176,13 @@ class TariffWorkerTests(unittest.IsolatedAsyncioTestCase):
tariff = settings.tariffs_config.require("standard")
with patch("bot.services.tariff_worker.tariff_dal.get_warning", new=AsyncMock(return_value=True)):
await worker._sync_premium_squad_limit(AsyncMock(), sub, tariff, datetime.now(timezone.utc))
await worker._sync_premium_squad_limit(
AsyncMock(),
sub,
tariff,
datetime.now(timezone.utc),
panel_username="tg_123",
)
self.assertTrue(sub.premium_is_limited)
panel_service.update_user_details_on_panel.assert_awaited_once()
@@ -205,7 +211,7 @@ class TariffWorkerTests(unittest.IsolatedAsyncioTestCase):
return_value={
"topUsers": [
{
"user": {"uuid": "panel-uuid"},
"username": "tg_123",
"total": int(1.5 * (1024**3)),
}
]
@@ -233,7 +239,9 @@ class TariffWorkerTests(unittest.IsolatedAsyncioTestCase):
)
tariff = settings.tariffs_config.require("standard")
await worker._sync_premium_squad_limit(AsyncMock(), sub, tariff, now)
await worker._sync_premium_squad_limit(
AsyncMock(), sub, tariff, now, panel_username="tg_123"
)
self.assertEqual(sub.premium_topup_balance_bytes, int(1.5 * (1024**3)))
self.assertEqual(sub.premium_topup_used_bytes, int(0.5 * (1024**3)))
@@ -243,14 +251,16 @@ class TariffWorkerTests(unittest.IsolatedAsyncioTestCase):
return_value={
"topUsers": [
{
"user": {"uuid": "panel-uuid"},
"username": "tg_123",
"total": int(0.1 * (1024**3)),
}
]
}
)
next_month = datetime(2026, 6, 2, tzinfo=timezone.utc)
await worker._sync_premium_squad_limit(AsyncMock(), sub, tariff, next_month)
await worker._sync_premium_squad_limit(
AsyncMock(), sub, tariff, next_month, panel_username="tg_123"
)
self.assertEqual(sub.premium_topup_balance_bytes, int(1.5 * (1024**3)))
self.assertEqual(sub.premium_topup_used_bytes, 0)