Files
AutoMarket/backend/test_ym_api.py

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()