From 6a5e007a1be15f3e1631e67c3759e9fb8e96833f Mon Sep 17 00:00:00 2001 From: bohd4nx Date: Tue, 14 Apr 2026 01:45:04 +0300 Subject: [PATCH] refactor: update import statements and patching methods in test files for better modularity --- tests/004_test_stars.py | 11 +++++++---- tests/005_test_premium.py | 11 +++++++---- tests/006_test_topup.py | 6 ++++-- tests/010_test_recharge_ads.py | 6 ++++-- 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/tests/004_test_stars.py b/tests/004_test_stars.py index 9ec952e..e550c3c 100644 --- a/tests/004_test_stars.py +++ b/tests/004_test_stars.py @@ -1,9 +1,12 @@ """Unit tests for Stars methods — purchase_stars and giveaway_stars.""" +import importlib from unittest.mock import AsyncMock, patch import pytest +_purchase_stars_mod = importlib.import_module("pyfragment.methods.purchase_stars") +_giveaway_stars_mod = importlib.import_module("pyfragment.methods.giveaway_stars") from pyfragment import FragmentClient from pyfragment.types import ConfigurationError, StarsGiveawayResult, StarsResult, UserNotFoundError from tests.shared import FAKE_ACCOUNT, FAKE_RECIPIENT, FAKE_REQ_ID, FAKE_TRANSACTION, FAKE_TX_HASH @@ -46,8 +49,8 @@ async def test_purchase_stars_success(client: FragmentClient) -> None: ] ), ), - patch("pyfragment.methods.purchase_stars.get_account_info", AsyncMock(return_value=FAKE_ACCOUNT)), - patch("pyfragment.methods.purchase_stars.process_transaction", AsyncMock(return_value=FAKE_TX_HASH)), + patch.object(_purchase_stars_mod, "get_account_info", AsyncMock(return_value=FAKE_ACCOUNT)), + patch.object(_purchase_stars_mod, "process_transaction", AsyncMock(return_value=FAKE_TX_HASH)), ): result = await client.purchase_stars("@user", amount=500) @@ -120,8 +123,8 @@ async def test_giveaway_stars_success(client: FragmentClient) -> None: ] ), ), - patch("pyfragment.methods.giveaway_stars.get_account_info", AsyncMock(return_value=FAKE_ACCOUNT)), - patch("pyfragment.methods.giveaway_stars.process_transaction", AsyncMock(return_value=FAKE_TX_HASH)), + patch.object(_giveaway_stars_mod, "get_account_info", AsyncMock(return_value=FAKE_ACCOUNT)), + patch.object(_giveaway_stars_mod, "process_transaction", AsyncMock(return_value=FAKE_TX_HASH)), ): result = await client.giveaway_stars("@channel", winners=3, amount=1000) diff --git a/tests/005_test_premium.py b/tests/005_test_premium.py index 54283d3..ba58d55 100644 --- a/tests/005_test_premium.py +++ b/tests/005_test_premium.py @@ -1,9 +1,12 @@ """Unit tests for Premium methods — purchase_premium and giveaway_premium.""" +import importlib from unittest.mock import AsyncMock, patch import pytest +_purchase_premium_mod = importlib.import_module("pyfragment.methods.purchase_premium") +_giveaway_premium_mod = importlib.import_module("pyfragment.methods.giveaway_premium") from pyfragment import FragmentClient from pyfragment.types import ConfigurationError, PremiumGiveawayResult, PremiumResult, UserNotFoundError from tests.shared import FAKE_ACCOUNT, FAKE_RECIPIENT, FAKE_REQ_ID, FAKE_TRANSACTION, FAKE_TX_HASH @@ -41,8 +44,8 @@ async def test_purchase_premium_success(client: FragmentClient) -> None: ] ), ), - patch("pyfragment.methods.purchase_premium.get_account_info", AsyncMock(return_value=FAKE_ACCOUNT)), - patch("pyfragment.methods.purchase_premium.process_transaction", AsyncMock(return_value=FAKE_TX_HASH)), + patch.object(_purchase_premium_mod, "get_account_info", AsyncMock(return_value=FAKE_ACCOUNT)), + patch.object(_purchase_premium_mod, "process_transaction", AsyncMock(return_value=FAKE_TX_HASH)), ): result = await client.purchase_premium("@user", months=3) @@ -103,8 +106,8 @@ async def test_giveaway_premium_success(client: FragmentClient) -> None: ] ), ), - patch("pyfragment.methods.giveaway_premium.get_account_info", AsyncMock(return_value=FAKE_ACCOUNT)), - patch("pyfragment.methods.giveaway_premium.process_transaction", AsyncMock(return_value=FAKE_TX_HASH)), + patch.object(_giveaway_premium_mod, "get_account_info", AsyncMock(return_value=FAKE_ACCOUNT)), + patch.object(_giveaway_premium_mod, "process_transaction", AsyncMock(return_value=FAKE_TX_HASH)), ): result = await client.giveaway_premium("@channel", winners=10, months=3) diff --git a/tests/006_test_topup.py b/tests/006_test_topup.py index 67dbd7a..f1aede7 100644 --- a/tests/006_test_topup.py +++ b/tests/006_test_topup.py @@ -1,9 +1,11 @@ """Unit tests for topup_ton — TON Ads balance top-up.""" +import importlib from unittest.mock import AsyncMock, patch import pytest +_topup_ton_mod = importlib.import_module("pyfragment.methods.topup_ton") from pyfragment import FragmentClient from pyfragment.types import AdsTopupResult, ConfigurationError, UserNotFoundError from tests.shared import FAKE_ACCOUNT, FAKE_RECIPIENT, FAKE_REQ_ID, FAKE_TRANSACTION, FAKE_TX_HASH @@ -47,8 +49,8 @@ async def test_topup_ton_success(client: FragmentClient) -> None: ] ), ), - patch("pyfragment.methods.topup_ton.get_account_info", AsyncMock(return_value=FAKE_ACCOUNT)), - patch("pyfragment.methods.topup_ton.process_transaction", AsyncMock(return_value=FAKE_TX_HASH)), + patch.object(_topup_ton_mod, "get_account_info", AsyncMock(return_value=FAKE_ACCOUNT)), + patch.object(_topup_ton_mod, "process_transaction", AsyncMock(return_value=FAKE_TX_HASH)), ): result = await client.topup_ton("@user", amount=10) diff --git a/tests/010_test_recharge_ads.py b/tests/010_test_recharge_ads.py index 2c9300c..f0e090c 100644 --- a/tests/010_test_recharge_ads.py +++ b/tests/010_test_recharge_ads.py @@ -1,9 +1,11 @@ """Unit tests for recharge_ads — self-service Telegram Ads recharge.""" +import importlib from unittest.mock import AsyncMock, patch import pytest +_recharge_ads_mod = importlib.import_module("pyfragment.methods.recharge_ads") from pyfragment import FragmentClient from pyfragment.types import AdsRechargeResult, ConfigurationError from tests.shared import FAKE_ACCOUNT, FAKE_ADS_ACCOUNT, FAKE_REQ_ID, FAKE_TRANSACTION, FAKE_TX_HASH @@ -46,8 +48,8 @@ async def test_recharge_ads_success(client: FragmentClient) -> None: ] ), ), - patch("pyfragment.methods.recharge_ads.get_account_info", AsyncMock(return_value=FAKE_ACCOUNT)), - patch("pyfragment.methods.recharge_ads.process_transaction", AsyncMock(return_value=FAKE_TX_HASH)), + patch.object(_recharge_ads_mod, "get_account_info", AsyncMock(return_value=FAKE_ACCOUNT)), + patch.object(_recharge_ads_mod, "process_transaction", AsyncMock(return_value=FAKE_TX_HASH)), ): result = await client.recharge_ads(FAKE_ADS_ACCOUNT, amount=10)