mirror of
https://github.com/BEDOLAGA-DEV/remnawave-bedolaga-telegram-bot.git
synced 2026-02-21 11:51:06 +00:00
Fix auto-purchase to use miniapp service submit
This commit is contained in:
@@ -16,13 +16,12 @@ from app.localization.texts import get_texts
|
||||
from app.services.admin_notification_service import AdminNotificationService
|
||||
from app.services.subscription_checkout_service import clear_subscription_checkout_draft
|
||||
from app.services.subscription_purchase_service import (
|
||||
MiniAppSubscriptionPurchaseService,
|
||||
PurchaseOptionsContext,
|
||||
PurchasePricingResult,
|
||||
PurchaseSelection,
|
||||
PurchaseValidationError,
|
||||
PurchaseBalanceError,
|
||||
SubscriptionPurchaseService,
|
||||
MiniAppSubscriptionPurchaseService,
|
||||
)
|
||||
from app.services.user_cart_service import user_cart_service
|
||||
from app.utils.pricing_utils import format_period_description
|
||||
@@ -37,6 +36,7 @@ class AutoPurchaseContext:
|
||||
context: PurchaseOptionsContext
|
||||
pricing: PurchasePricingResult
|
||||
selection: PurchaseSelection
|
||||
service: MiniAppSubscriptionPurchaseService
|
||||
|
||||
|
||||
async def _prepare_auto_purchase(
|
||||
@@ -89,7 +89,12 @@ async def _prepare_auto_purchase(
|
||||
)
|
||||
|
||||
pricing = await miniapp_service.calculate_pricing(db, context, selection)
|
||||
return AutoPurchaseContext(context=context, pricing=pricing, selection=selection)
|
||||
return AutoPurchaseContext(
|
||||
context=context,
|
||||
pricing=pricing,
|
||||
selection=selection,
|
||||
service=miniapp_service,
|
||||
)
|
||||
|
||||
|
||||
async def auto_purchase_saved_cart_after_topup(
|
||||
@@ -155,7 +160,7 @@ async def auto_purchase_saved_cart_after_topup(
|
||||
)
|
||||
return False
|
||||
|
||||
purchase_service = SubscriptionPurchaseService()
|
||||
purchase_service = prepared.service
|
||||
|
||||
try:
|
||||
purchase_result = await purchase_service.submit_purchase(
|
||||
|
||||
@@ -130,7 +130,6 @@ async def test_auto_purchase_saved_cart_after_topup_success(monkeypatch):
|
||||
details=base_pricing.details,
|
||||
)
|
||||
|
||||
class DummyPurchaseService:
|
||||
async def submit_purchase(self, db, prepared_context, pricing):
|
||||
return {
|
||||
"subscription": MagicMock(),
|
||||
@@ -143,10 +142,6 @@ async def test_auto_purchase_saved_cart_after_topup_success(monkeypatch):
|
||||
"app.services.subscription_auto_purchase_service.MiniAppSubscriptionPurchaseService",
|
||||
lambda: DummyMiniAppService(),
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
"app.services.subscription_auto_purchase_service.SubscriptionPurchaseService",
|
||||
lambda: DummyPurchaseService(),
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
"app.services.subscription_auto_purchase_service.user_cart_service.get_user_cart",
|
||||
AsyncMock(return_value=cart_data),
|
||||
|
||||
Reference in New Issue
Block a user