montana/Русский/Логистика/test_api_contacts.py

39 lines
1.8 KiB
Python
Raw Permalink Normal View History

#!/usr/bin/env python3
"""Test contacts API flow: search (masked) → unlock (full)."""
import os, json, sys
os.environ.setdefault('DATABASE_URL', 'postgresql://seafare:SF_m0ntana_2026@localhost:5432/seafare_db')
# Import agent tools directly
sys.path.insert(0, '/opt/app')
import seafare_agent as agent
print('=== API TEST 1: search_contacts "CMB TECH" (masked preview) ===')
result = json.loads(agent.execute_tool('search_contacts', {'query': 'CMB TECH'}, is_admin=False, user_id=1))
print(f"Found: {result['found']}")
print(f"Note: {result.get('note', '')}")
for c in result.get('contacts', [])[:3]:
print(f" {c.get('role','')}: {c.get('company_name','')} | email: {c.get('email','')} | unlocked: {c.get('unlocked','')}")
print()
print('=== API TEST 2: unlock_contacts "CMB TECH" (full data) ===')
result = json.loads(agent.execute_tool('unlock_contacts', {'query': 'CMB TECH'}, is_admin=True, user_id=1))
print(f"Found: {result['found']}")
print(f"Note: {result.get('note', '')}")
for c in result.get('contacts', [])[:3]:
print(f" {c.get('role','')}: {c.get('company_name','')} | email: {c.get('email','')} | website: {c.get('website','')}")
print()
print('=== API TEST 3: search_contacts by MMSI "538003426" ===')
result = json.loads(agent.execute_tool('search_contacts', {'query': '538003426'}, is_admin=False, user_id=1))
print(f"Found: {result['found']}")
for c in result.get('contacts', [])[:3]:
print(f" {c.get('role','')}: {c.get('company_name','')} | email: {c.get('email','')}")
print()
print('=== API TEST 4: search after unlock (should return purchased, no charge) ===')
result = json.loads(agent.execute_tool('search_contacts', {'query': 'CMB TECH'}, is_admin=False, user_id=1))
print(f"Found: {result['found']}")
print(f"Note: {result.get('note', '')}")
print('\n=== ALL API TESTS DONE ===')