Files
remnawave-bedolaga-telegram…/tests/test_menu_subscription_status.py
Fringg eb18994b7d fix: complete datetime.utcnow() → datetime.now(UTC) migration
- Migrate 660+ datetime.utcnow() across 153 files to datetime.now(UTC)
- Migrate 30+ datetime.now() without UTC to datetime.now(UTC)
- Convert all 170 DateTime columns to DateTime(timezone=True)
- Add migrate_datetime_to_timestamptz() in universal_migration with SET LOCAL timezone='UTC' safety
- Remove 70+ .replace(tzinfo=None) workarounds
- Fix utcfromtimestamp → fromtimestamp(..., tz=UTC)
- Fix fromtimestamp() without tz= (system_logs, backup_service, referral_diagnostics)
- Fix fromisoformat/isoparse to ensure aware output (platega, yookassa, wata, miniapp, nalogo)
- Fix strptime() to add .replace(tzinfo=UTC) (backup_service, referral_diagnostics)
- Fix datetime.combine() to include tzinfo=UTC (remnawave_sync, traffic_monitoring)
- Fix datetime.max/datetime.min sentinels with .replace(tzinfo=UTC)
- Rename panel_datetime_to_naive_utc → panel_datetime_to_utc
- Remove DTZ003 from ruff ignore list
2026-02-17 04:45:40 +03:00

31 lines
964 B
Python

from datetime import UTC, datetime, timedelta
from unittest.mock import MagicMock
from app.handlers.menu import _get_subscription_status
class DummyTexts:
def t(self, key: str, default: str): # pragma: no cover - simple stub
return default
def _build_user_with_subscription(actual_status: str, is_trial: bool, days_left: int):
subscription = MagicMock()
subscription.actual_status = actual_status
subscription.is_trial = is_trial
subscription.end_date = datetime.now(UTC) + timedelta(days=days_left, hours=1)
user = MagicMock()
user.subscription = subscription
return user
def test_get_subscription_status_marks_trial_as_trial():
texts = DummyTexts()
user = _build_user_with_subscription(actual_status='active', is_trial=True, days_left=5)
status_text = _get_subscription_status(user, texts)
assert 'Тестовая подписка' in status_text
assert 'Активна' not in status_text