60 lines
2.0 KiB
Python
60 lines
2.0 KiB
Python
import os
|
|
import sys
|
|
from dotenv import load_dotenv
|
|
|
|
# Add parent dir to path so we can import backend packages
|
|
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|
|
|
from backend.ym_api import YandexMarketAPI
|
|
from backend.ym_api.exceptions import YMAPIError
|
|
|
|
def test_ym_api():
|
|
# Load environment variables
|
|
env_path = os.path.join(os.path.dirname(__file__), '.env')
|
|
load_dotenv(env_path)
|
|
|
|
# Check if key is loaded
|
|
api_token = os.getenv('YM_API_TOKEN')
|
|
campaign_id = os.getenv('YM_CAMPAIGN_ID')
|
|
business_id = os.getenv('YM_BUSINESS_ID')
|
|
|
|
if not api_token:
|
|
print("Error: YM_API_TOKEN must be in backend/.env")
|
|
return
|
|
|
|
print(f"Initializing YandexMarketAPI...")
|
|
if not campaign_id:
|
|
print("Warning: YM_CAMPAIGN_ID not provided. Orders API might fail.")
|
|
if not business_id:
|
|
print("Warning: YM_BUSINESS_ID not provided. Assortment API might fail.")
|
|
|
|
api = YandexMarketAPI()
|
|
|
|
try:
|
|
if business_id:
|
|
# Test 1: Get Assortment (Products)
|
|
print("\n--- Testing Assortment API (Business Offers) ---")
|
|
assortment_response = api.assortment.get_offer_mappings(limit=5)
|
|
print("Success! Response keys:", assortment_response.keys())
|
|
|
|
result = assortment_response.get("result", {})
|
|
offers = result.get("offerMappings", [])
|
|
print(f"Found {len(offers)} offers in business catalog.")
|
|
|
|
if campaign_id:
|
|
# Test 2: Get Orders
|
|
print("\n--- Testing Orders API (Campaign Orders) ---")
|
|
orders_response = api.orders.get_list(params={"limit": 5})
|
|
|
|
# Yandex returns lists under 'orders'
|
|
orders = orders_response.get("orders", [])
|
|
print(f"Found {len(orders)} orders for campaign.")
|
|
|
|
except YMAPIError as e:
|
|
print(f"API Error: {e}")
|
|
except Exception as e:
|
|
print(f"Unexpected Error: {e}")
|
|
|
|
if __name__ == '__main__':
|
|
test_ym_api()
|