Files
remnawave-bedolaga-telegram…/tests/test_menu_subscription_status.py
c0mrade 9a2aea038a chore: add uv package manager and ruff linter configuration
- Add pyproject.toml with uv and ruff configuration
- Pin Python version to 3.13 via .python-version
- Add Makefile commands: lint, format, fix
- Apply ruff formatting to entire codebase
- Remove unused imports (base64 in yookassa/simple_subscription)
- Update .gitignore for new config files
2026-01-24 17:45:27 +03:00

31 lines
959 B
Python

from datetime import 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.utcnow() + 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