From c4d1f3eccc2cdf366b8674f6ef59f37a79fadeaf Mon Sep 17 00:00:00 2001 From: Egor Date: Sun, 26 Oct 2025 18:50:13 +0300 Subject: [PATCH] Fix auto-purchase to use miniapp service submit --- app/services/subscription_auto_purchase_service.py | 13 +++++++++---- .../test_subscription_auto_purchase_service.py | 5 ----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/services/subscription_auto_purchase_service.py b/app/services/subscription_auto_purchase_service.py index 980f7bc4..17ab9cca 100644 --- a/app/services/subscription_auto_purchase_service.py +++ b/app/services/subscription_auto_purchase_service.py @@ -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( diff --git a/tests/services/test_subscription_auto_purchase_service.py b/tests/services/test_subscription_auto_purchase_service.py index d2a7dc9f..7e83536e 100644 --- a/tests/services/test_subscription_auto_purchase_service.py +++ b/tests/services/test_subscription_auto_purchase_service.py @@ -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),