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