diff --git a/examples/purchase/run_premium_giveaway.py b/examples/purchase/run_premium_giveaway.py index 184b518..82cd91f 100644 --- a/examples/purchase/run_premium_giveaway.py +++ b/examples/purchase/run_premium_giveaway.py @@ -9,7 +9,7 @@ Channel can be "@channel", "channel", or "https://t.me/channel". import asyncio from pyfragment import ConfigurationError, FragmentClient, UserNotFoundError -from pyfragment.models.enums import PaymentMethod +from pyfragment.enums import PaymentMethod SEED = "word1 word2 ... word24" API_KEY = "YOUR_TONAPI_KEY" diff --git a/examples/purchase/run_stars_giveaway.py b/examples/purchase/run_stars_giveaway.py index f685069..338e973 100644 --- a/examples/purchase/run_stars_giveaway.py +++ b/examples/purchase/run_stars_giveaway.py @@ -9,7 +9,7 @@ Channel can be "@channel", "channel", or "https://t.me/channel". import asyncio from pyfragment import ConfigurationError, FragmentClient, UserNotFoundError -from pyfragment.models.enums import PaymentMethod +from pyfragment.enums import PaymentMethod SEED = "word1 word2 ... word24" API_KEY = "YOUR_TONAPI_KEY" diff --git a/examples/purchase/send_premium.py b/examples/purchase/send_premium.py index c02d02b..a245c55 100644 --- a/examples/purchase/send_premium.py +++ b/examples/purchase/send_premium.py @@ -9,7 +9,7 @@ Username can be "@username", "username", or "https://t.me/username". import asyncio from pyfragment import ConfigurationError, FragmentClient, UserNotFoundError -from pyfragment.models.enums import PaymentMethod +from pyfragment.enums import PaymentMethod SEED = "word1 word2 ... word24" API_KEY = "YOUR_TONAPI_KEY" diff --git a/examples/purchase/send_stars.py b/examples/purchase/send_stars.py index 2dacdc6..ce9dc10 100644 --- a/examples/purchase/send_stars.py +++ b/examples/purchase/send_stars.py @@ -9,7 +9,7 @@ Username can be "@username", "username", or "https://t.me/username". import asyncio from pyfragment import ConfigurationError, FragmentClient, UserNotFoundError -from pyfragment.models.enums import PaymentMethod +from pyfragment.enums import PaymentMethod SEED = "word1 word2 ... word24" API_KEY = "YOUR_TONAPI_KEY" diff --git a/pyfragment/__init__.py b/pyfragment/__init__.py index afdedfd..44162ce 100644 --- a/pyfragment/__init__.py +++ b/pyfragment/__init__.py @@ -20,13 +20,14 @@ from pyfragment.exceptions import ( VerificationError, WalletError, ) -from pyfragment.models.anonymous_numbers import LoginCodeResult, TerminateSessionsResult -from pyfragment.models.cookies import CookieResult -from pyfragment.models.enums import PaymentMethod, WalletVersion -from pyfragment.models.giveaways import PremiumGiveawayResult, StarsGiveawayResult -from pyfragment.models.marketplace import GiftsResult, NumbersResult, UsernamesResult -from pyfragment.models.payments import AdsRechargeResult, AdsTopupResult, PremiumResult, StarsResult -from pyfragment.models.wallet import WalletInfo +from pyfragment.domains.anonymous_numbers.models import LoginCodeResult, TerminateSessionsResult +from pyfragment.core.models import CookieResult +from pyfragment.enums import PaymentMethod, WalletVersion +from pyfragment.domains.giveaways.models import PremiumGiveawayResult, StarsGiveawayResult +from pyfragment.domains.marketplace.models import GiftsResult, NumbersResult, UsernamesResult +from pyfragment.domains.ads.models import AdsRechargeResult, AdsTopupResult +from pyfragment.domains.purchases.models import PremiumResult, StarsResult +from pyfragment.domains.tonapi.models import WalletInfo logging.getLogger("pyfragment").addHandler(logging.NullHandler()) diff --git a/pyfragment/client.py b/pyfragment/client.py index 3b81841..59aaf7a 100644 --- a/pyfragment/client.py +++ b/pyfragment/client.py @@ -19,12 +19,13 @@ from pyfragment.domains.marketplace.service import MarketplaceService from pyfragment.domains.purchases.service import PurchasesService from pyfragment.domains.tonapi.service import TonapiService from pyfragment.exceptions import ConfigurationError, CookieError -from pyfragment.models.anonymous_numbers import LoginCodeResult, TerminateSessionsResult -from pyfragment.models.enums import PaymentMethod, WalletVersion -from pyfragment.models.giveaways import PremiumGiveawayResult, StarsGiveawayResult -from pyfragment.models.marketplace import GiftsResult, NumbersResult, UsernamesResult -from pyfragment.models.payments import AdsRechargeResult, AdsTopupResult, PremiumResult, StarsResult -from pyfragment.models.wallet import WalletInfo +from pyfragment.domains.anonymous_numbers.models import LoginCodeResult, TerminateSessionsResult +from pyfragment.enums import PaymentMethod, WalletVersion +from pyfragment.domains.giveaways.models import PremiumGiveawayResult, StarsGiveawayResult +from pyfragment.domains.marketplace.models import GiftsResult, NumbersResult, UsernamesResult +from pyfragment.domains.ads.models import AdsRechargeResult, AdsTopupResult +from pyfragment.domains.purchases.models import PremiumResult, StarsResult +from pyfragment.domains.tonapi.models import WalletInfo class FragmentClient: diff --git a/pyfragment/core/cookies.py b/pyfragment/core/cookies.py index f52769e..2676909 100644 --- a/pyfragment/core/cookies.py +++ b/pyfragment/core/cookies.py @@ -6,8 +6,8 @@ from typing import Any from pyfragment.core.constants import FRAGMENT_BASE_URL, FRAGMENT_DOMAIN, REQUIRED_COOKIE_KEYS from pyfragment.exceptions import CookieError -from pyfragment.models.cookies import CookieResult -from pyfragment.models.enums import SupportedBrowser +from pyfragment.core.models import CookieResult +from pyfragment.enums import SupportedBrowser try: import rookiepy diff --git a/pyfragment/models/cookies.py b/pyfragment/core/models.py similarity index 100% rename from pyfragment/models/cookies.py rename to pyfragment/core/models.py diff --git a/pyfragment/domains/ads/models.py b/pyfragment/domains/ads/models.py new file mode 100644 index 0000000..d6a0ef4 --- /dev/null +++ b/pyfragment/domains/ads/models.py @@ -0,0 +1,25 @@ +from __future__ import annotations + +from dataclasses import dataclass + + +@dataclass +class AdsTopupResult: + transaction_id: str + username: str + amount: int + + def __repr__(self) -> str: + return f"AdsTopupResult(username='{self.username}', amount={self.amount} GRAM (ex TON), tx='{self.transaction_id}')" + + +@dataclass +class AdsRechargeResult: + transaction_id: str + amount: int + + def __repr__(self) -> str: + return f"AdsRechargeResult(amount={self.amount} GRAM (ex TON), tx='{self.transaction_id}')" + + +__all__ = ["AdsRechargeResult", "AdsTopupResult"] diff --git a/pyfragment/domains/ads/recharge.py b/pyfragment/domains/ads/recharge.py index ac7bf7c..e7fcee5 100644 --- a/pyfragment/domains/ads/recharge.py +++ b/pyfragment/domains/ads/recharge.py @@ -8,7 +8,7 @@ from pyfragment.core.constants import ADS_TOPUP_PAGE, DEVICE_INFO, GRAM_TOPUP_MA from pyfragment.domains.tonapi.account import get_account_info from pyfragment.domains.tonapi.transaction import process_transaction from pyfragment.exceptions import ConfigurationError, FragmentAPIError, FragmentError, UnexpectedError, VerificationError -from pyfragment.models.payments import AdsRechargeResult +from pyfragment.domains.ads.models import AdsRechargeResult if TYPE_CHECKING: from pyfragment.client import FragmentClient diff --git a/pyfragment/domains/ads/service.py b/pyfragment/domains/ads/service.py index 35f3640..66a47ac 100644 --- a/pyfragment/domains/ads/service.py +++ b/pyfragment/domains/ads/service.py @@ -5,7 +5,7 @@ from typing import TYPE_CHECKING from pyfragment.domains.ads.recharge import recharge_ads from pyfragment.domains.ads.tonup import topup_gram from pyfragment.domains.base import BaseService -from pyfragment.models.payments import AdsRechargeResult, AdsTopupResult +from pyfragment.domains.ads.models import AdsRechargeResult, AdsTopupResult if TYPE_CHECKING: pass diff --git a/pyfragment/domains/ads/tonup.py b/pyfragment/domains/ads/tonup.py index f04bb56..192a60f 100644 --- a/pyfragment/domains/ads/tonup.py +++ b/pyfragment/domains/ads/tonup.py @@ -16,7 +16,7 @@ from pyfragment.exceptions import ( UserNotFoundError, VerificationError, ) -from pyfragment.models.payments import AdsTopupResult +from pyfragment.domains.ads.models import AdsTopupResult if TYPE_CHECKING: from pyfragment.client import FragmentClient diff --git a/pyfragment/domains/anonymous_numbers/__init__.py b/pyfragment/domains/anonymous_numbers/__init__.py index 9b7bb67..d104f4d 100644 --- a/pyfragment/domains/anonymous_numbers/__init__.py +++ b/pyfragment/domains/anonymous_numbers/__init__.py @@ -1,6 +1,6 @@ from pyfragment.domains.anonymous_numbers.number import get_login_code, terminate_sessions, toggle_login_codes from pyfragment.domains.anonymous_numbers.service import AnonymousNumbersService -from pyfragment.models.anonymous_numbers import LoginCodeResult, TerminateSessionsResult +from pyfragment.domains.anonymous_numbers.models import LoginCodeResult, TerminateSessionsResult __all__ = [ "AnonymousNumbersService", diff --git a/pyfragment/models/anonymous_numbers.py b/pyfragment/domains/anonymous_numbers/models.py similarity index 100% rename from pyfragment/models/anonymous_numbers.py rename to pyfragment/domains/anonymous_numbers/models.py diff --git a/pyfragment/domains/anonymous_numbers/number.py b/pyfragment/domains/anonymous_numbers/number.py index 8a432be..3f43da2 100644 --- a/pyfragment/domains/anonymous_numbers/number.py +++ b/pyfragment/domains/anonymous_numbers/number.py @@ -7,7 +7,7 @@ from typing import TYPE_CHECKING from pyfragment.core.constants import NUMBERS_PAGE from pyfragment.domains.anonymous_numbers.parser import parse_login_code from pyfragment.exceptions import AnonymousNumberError, FragmentAPIError, FragmentError, UnexpectedError -from pyfragment.models.anonymous_numbers import LoginCodeResult, TerminateSessionsResult +from pyfragment.domains.anonymous_numbers.models import LoginCodeResult, TerminateSessionsResult if TYPE_CHECKING: from pyfragment.client import FragmentClient diff --git a/pyfragment/domains/anonymous_numbers/service.py b/pyfragment/domains/anonymous_numbers/service.py index 28c7ec5..96ec5e5 100644 --- a/pyfragment/domains/anonymous_numbers/service.py +++ b/pyfragment/domains/anonymous_numbers/service.py @@ -4,7 +4,7 @@ from typing import TYPE_CHECKING from pyfragment.domains.anonymous_numbers.number import get_login_code, terminate_sessions, toggle_login_codes from pyfragment.domains.base import BaseService -from pyfragment.models.anonymous_numbers import LoginCodeResult, TerminateSessionsResult +from pyfragment.domains.anonymous_numbers.models import LoginCodeResult, TerminateSessionsResult if TYPE_CHECKING: pass diff --git a/pyfragment/domains/giveaways/__init__.py b/pyfragment/domains/giveaways/__init__.py index eaec868..aeadd05 100644 --- a/pyfragment/domains/giveaways/__init__.py +++ b/pyfragment/domains/giveaways/__init__.py @@ -1,6 +1,6 @@ from pyfragment.domains.giveaways.giveaway import giveaway_premium, giveaway_stars from pyfragment.domains.giveaways.service import GiveawaysService -from pyfragment.models.giveaways import PremiumGiveawayResult, StarsGiveawayResult +from pyfragment.domains.giveaways.models import PremiumGiveawayResult, StarsGiveawayResult __all__ = [ "GiveawaysService", diff --git a/pyfragment/domains/giveaways/giveaway.py b/pyfragment/domains/giveaways/giveaway.py index 3ca2245..4c6f3b0 100644 --- a/pyfragment/domains/giveaways/giveaway.py +++ b/pyfragment/domains/giveaways/giveaway.py @@ -28,8 +28,8 @@ from pyfragment.exceptions import ( UserNotFoundError, VerificationError, ) -from pyfragment.models.enums import PaymentMethod -from pyfragment.models.giveaways import PremiumGiveawayResult, StarsGiveawayResult +from pyfragment.enums import PaymentMethod +from pyfragment.domains.giveaways.models import PremiumGiveawayResult, StarsGiveawayResult if TYPE_CHECKING: from pyfragment.client import FragmentClient diff --git a/pyfragment/models/giveaways.py b/pyfragment/domains/giveaways/models.py similarity index 100% rename from pyfragment/models/giveaways.py rename to pyfragment/domains/giveaways/models.py diff --git a/pyfragment/domains/giveaways/service.py b/pyfragment/domains/giveaways/service.py index fd85eb6..6166769 100644 --- a/pyfragment/domains/giveaways/service.py +++ b/pyfragment/domains/giveaways/service.py @@ -4,8 +4,8 @@ from typing import TYPE_CHECKING from pyfragment.domains.base import BaseService from pyfragment.domains.giveaways.giveaway import giveaway_premium, giveaway_stars -from pyfragment.models.enums import PaymentMethod -from pyfragment.models.giveaways import PremiumGiveawayResult, StarsGiveawayResult +from pyfragment.enums import PaymentMethod +from pyfragment.domains.giveaways.models import PremiumGiveawayResult, StarsGiveawayResult if TYPE_CHECKING: pass diff --git a/pyfragment/domains/marketplace/__init__.py b/pyfragment/domains/marketplace/__init__.py index ed298ed..90dfcb6 100644 --- a/pyfragment/domains/marketplace/__init__.py +++ b/pyfragment/domains/marketplace/__init__.py @@ -1,6 +1,6 @@ from pyfragment.domains.marketplace.search import search_gifts, search_numbers, search_usernames from pyfragment.domains.marketplace.service import MarketplaceService -from pyfragment.models.marketplace import GiftsResult, NumbersResult, UsernamesResult +from pyfragment.domains.marketplace.models import GiftsResult, NumbersResult, UsernamesResult __all__ = [ "GiftsResult", diff --git a/pyfragment/models/marketplace.py b/pyfragment/domains/marketplace/models.py similarity index 100% rename from pyfragment/models/marketplace.py rename to pyfragment/domains/marketplace/models.py diff --git a/pyfragment/domains/marketplace/search.py b/pyfragment/domains/marketplace/search.py index 2f5b6d5..7d28876 100644 --- a/pyfragment/domains/marketplace/search.py +++ b/pyfragment/domains/marketplace/search.py @@ -6,7 +6,7 @@ from typing import TYPE_CHECKING, Any from pyfragment.core.constants import FRAGMENT_BASE_URL, GIFTS_PAGE, NUMBERS_PAGE from pyfragment.domains.marketplace.parser import parse_auction_rows, parse_gift_items from pyfragment.exceptions import FragmentAPIError, FragmentError, UnexpectedError -from pyfragment.models.marketplace import GiftsResult, NumbersResult, UsernamesResult +from pyfragment.domains.marketplace.models import GiftsResult, NumbersResult, UsernamesResult if TYPE_CHECKING: from pyfragment.client import FragmentClient diff --git a/pyfragment/domains/marketplace/service.py b/pyfragment/domains/marketplace/service.py index 885e17a..b8510a2 100644 --- a/pyfragment/domains/marketplace/service.py +++ b/pyfragment/domains/marketplace/service.py @@ -4,7 +4,7 @@ from typing import TYPE_CHECKING from pyfragment.domains.base import BaseService from pyfragment.domains.marketplace.search import search_gifts, search_numbers, search_usernames -from pyfragment.models.marketplace import GiftsResult, NumbersResult, UsernamesResult +from pyfragment.domains.marketplace.models import GiftsResult, NumbersResult, UsernamesResult if TYPE_CHECKING: pass diff --git a/pyfragment/domains/purchases/__init__.py b/pyfragment/domains/purchases/__init__.py index baa5df2..9950f0a 100644 --- a/pyfragment/domains/purchases/__init__.py +++ b/pyfragment/domains/purchases/__init__.py @@ -1,5 +1,5 @@ from pyfragment.domains.purchases.purchase import purchase_premium, purchase_stars from pyfragment.domains.purchases.service import PurchasesService -from pyfragment.models.payments import PremiumResult, StarsResult +from pyfragment.domains.purchases.models import PremiumResult, StarsResult __all__ = ["PremiumResult", "PurchasesService", "StarsResult", "purchase_premium", "purchase_stars"] diff --git a/pyfragment/models/payments.py b/pyfragment/domains/purchases/models.py similarity index 50% rename from pyfragment/models/payments.py rename to pyfragment/domains/purchases/models.py index 408b005..1ac4a9b 100644 --- a/pyfragment/models/payments.py +++ b/pyfragment/domains/purchases/models.py @@ -23,23 +23,4 @@ class StarsResult: return f"StarsResult(username='{self.username}', amount={self.amount} stars, tx='{self.transaction_id}')" -@dataclass -class AdsTopupResult: - transaction_id: str - username: str - amount: int - - def __repr__(self) -> str: - return f"AdsTopupResult(username='{self.username}', amount={self.amount} GRAM (ex TON), tx='{self.transaction_id}')" - - -@dataclass -class AdsRechargeResult: - transaction_id: str - amount: int - - def __repr__(self) -> str: - return f"AdsRechargeResult(amount={self.amount} GRAM (ex TON), tx='{self.transaction_id}')" - - -__all__ = ["AdsRechargeResult", "AdsTopupResult", "PremiumResult", "StarsResult"] +__all__ = ["PremiumResult", "StarsResult"] diff --git a/pyfragment/domains/purchases/purchase.py b/pyfragment/domains/purchases/purchase.py index 515de8d..b60a868 100644 --- a/pyfragment/domains/purchases/purchase.py +++ b/pyfragment/domains/purchases/purchase.py @@ -25,8 +25,8 @@ from pyfragment.exceptions import ( UserNotFoundError, VerificationError, ) -from pyfragment.models.enums import PaymentMethod -from pyfragment.models.payments import PremiumResult, StarsResult +from pyfragment.enums import PaymentMethod +from pyfragment.domains.purchases.models import PremiumResult, StarsResult if TYPE_CHECKING: from pyfragment.client import FragmentClient diff --git a/pyfragment/domains/purchases/service.py b/pyfragment/domains/purchases/service.py index cc3c18d..1650280 100644 --- a/pyfragment/domains/purchases/service.py +++ b/pyfragment/domains/purchases/service.py @@ -4,8 +4,8 @@ from typing import TYPE_CHECKING from pyfragment.domains.base import BaseService from pyfragment.domains.purchases.purchase import purchase_premium, purchase_stars -from pyfragment.models.enums import PaymentMethod -from pyfragment.models.payments import PremiumResult, StarsResult +from pyfragment.enums import PaymentMethod +from pyfragment.domains.purchases.models import PremiumResult, StarsResult if TYPE_CHECKING: pass diff --git a/pyfragment/domains/tonapi/account.py b/pyfragment/domains/tonapi/account.py index c386c74..52cd42b 100644 --- a/pyfragment/domains/tonapi/account.py +++ b/pyfragment/domains/tonapi/account.py @@ -11,8 +11,8 @@ from tonutils.exceptions import ProviderResponseError from pyfragment.core.constants import MIN_GRAM_BALANCE, MIN_USDT_BALANCE, USDT_GRAM_MASTER_ADDRESS from pyfragment.exceptions import WalletError -from pyfragment.models.enums import WALLET_CLASSES -from pyfragment.models.wallet import WalletInfo +from pyfragment.enums import WALLET_CLASSES +from pyfragment.domains.tonapi.models import WalletInfo if TYPE_CHECKING: from pyfragment.client import FragmentClient diff --git a/pyfragment/models/wallet.py b/pyfragment/domains/tonapi/models.py similarity index 100% rename from pyfragment/models/wallet.py rename to pyfragment/domains/tonapi/models.py diff --git a/pyfragment/domains/tonapi/service.py b/pyfragment/domains/tonapi/service.py index 9914b64..3de0067 100644 --- a/pyfragment/domains/tonapi/service.py +++ b/pyfragment/domains/tonapi/service.py @@ -4,7 +4,7 @@ from typing import TYPE_CHECKING from pyfragment.domains.base import BaseService from pyfragment.domains.tonapi.account import get_wallet_info -from pyfragment.models.wallet import WalletInfo +from pyfragment.domains.tonapi.models import WalletInfo if TYPE_CHECKING: pass diff --git a/pyfragment/domains/tonapi/transaction.py b/pyfragment/domains/tonapi/transaction.py index 49910a8..2abf824 100644 --- a/pyfragment/domains/tonapi/transaction.py +++ b/pyfragment/domains/tonapi/transaction.py @@ -13,7 +13,7 @@ from tonutils.exceptions import ProviderResponseError from pyfragment.domains.tonapi.account import check_gram_payment_balance, check_usdt_payment_balance from pyfragment.exceptions import ParseError, TransactionError, WalletError -from pyfragment.models.enums import WALLET_CLASSES, PaymentMethod +from pyfragment.enums import WALLET_CLASSES, PaymentMethod if TYPE_CHECKING: from pyfragment.client import FragmentClient diff --git a/pyfragment/models/enums.py b/pyfragment/enums.py similarity index 100% rename from pyfragment/models/enums.py rename to pyfragment/enums.py diff --git a/pyfragment/models/__init__.py b/pyfragment/models/__init__.py deleted file mode 100644 index 21b9b7e..0000000 --- a/pyfragment/models/__init__.py +++ /dev/null @@ -1,25 +0,0 @@ -from pyfragment.models.anonymous_numbers import LoginCodeResult, TerminateSessionsResult -from pyfragment.models.cookies import CookieResult -from pyfragment.models.enums import PaymentMethod, WalletVersion -from pyfragment.models.giveaways import PremiumGiveawayResult, StarsGiveawayResult -from pyfragment.models.marketplace import GiftsResult, NumbersResult, UsernamesResult -from pyfragment.models.payments import AdsRechargeResult, AdsTopupResult, PremiumResult, StarsResult -from pyfragment.models.wallet import WalletInfo - -__all__ = [ - "AdsRechargeResult", - "AdsTopupResult", - "CookieResult", - "GiftsResult", - "LoginCodeResult", - "NumbersResult", - "PaymentMethod", - "PremiumGiveawayResult", - "PremiumResult", - "StarsGiveawayResult", - "StarsResult", - "TerminateSessionsResult", - "UsernamesResult", - "WalletInfo", - "WalletVersion", -] diff --git a/tests/003_test_balance.py b/tests/003_test_balance.py index fbe0d73..6ac5f0b 100644 --- a/tests/003_test_balance.py +++ b/tests/003_test_balance.py @@ -9,7 +9,7 @@ from tonutils.exceptions import ProviderResponseError from pyfragment import TransactionError, WalletError from pyfragment.domains.tonapi.transaction import process_transaction -from pyfragment.models.enums import PaymentMethod +from pyfragment.enums import PaymentMethod from tests.shared import VALID_SEED diff --git a/tests/004_test_stars.py b/tests/004_test_stars.py index 4a6d7df..18dd193 100644 --- a/tests/004_test_stars.py +++ b/tests/004_test_stars.py @@ -15,7 +15,7 @@ from pyfragment.core.constants.limits import ( STARS_WINNERS_MAX, STARS_WINNERS_MIN, ) -from pyfragment.models.enums import PaymentMethod +from pyfragment.enums import PaymentMethod from tests.shared import FAKE_ACCOUNT, FAKE_RECIPIENT, FAKE_REQ_ID, FAKE_TRANSACTION, FAKE_TX_HASH # Stars purchase validation tests diff --git a/tests/005_test_premium.py b/tests/005_test_premium.py index babf5f7..235b282 100644 --- a/tests/005_test_premium.py +++ b/tests/005_test_premium.py @@ -9,7 +9,7 @@ import pyfragment.domains.purchases.purchase as _purchase_premium_mod from pyfragment import ConfigurationError, FragmentClient, PremiumGiveawayResult, PremiumResult, UserNotFoundError from pyfragment.core.constants.limits import PREMIUM_MONTHS_VALID, PREMIUM_WINNERS_MAX, PREMIUM_WINNERS_MIN from pyfragment.exceptions import AlreadySubscribedError -from pyfragment.models.enums import PaymentMethod +from pyfragment.enums import PaymentMethod from tests.shared import FAKE_ACCOUNT, FAKE_RECIPIENT, FAKE_REQ_ID, FAKE_TRANSACTION, FAKE_TX_HASH # Premium purchase validation tests