39 lines
1.8 KiB
Python
Executable File
39 lines
1.8 KiB
Python
Executable File
#!/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 ===')
|