""" Test the updated action-categories endpoint """ import requests import json BASE_URL = "http://localhost:8000" def authenticate(): response = requests.post(f'{BASE_URL}/api/v1/auth/login', json={ 'username': 'admin', 'password': 'admin123' }) if response.status_code != 200: raise Exception(f"Authentication failed") return response.json()['access_token'] def test_action_categories(): token = authenticate() headers = {'Authorization': f'Bearer {token}'} print("="*80) print("TESTING UPDATED ACTION-CATEGORIES ENDPOINT") print("="*80) print() response = requests.get( f'{BASE_URL}/api/v1/configuration/action-categories', headers=headers ) if response.status_code != 200: print(f"[ERROR] Status: {response.status_code}") print(response.text) return data = response.json() # Display summary print(f"Total Categories: {data.get('total_categories', 0)}") print(f"Total Actions: {data.get('total_actions', 0)}") print(f"GSC-Specific Categories: {data.get('gsc_specific_categories', [])}") print() # Display categories categories = data.get('categories', {}) print(f"ACTION CATEGORIES ({len(categories)} total):") print("-"*80) for cat_name in sorted(categories.keys()): actions = categories[cat_name] print(f"\n{cat_name} ({len(actions)} actions):") for action in actions[:5]: print(f" - {action}") if len(actions) > 5: print(f" ... and {len(actions) - 5} more") # Display server information servers = data.get('servers', {}) print("\n" + "="*80) print("AVAILABLE SERVERS") print("="*80) gcore_servers = servers.get('gcore_servers', []) print(f"\nG-Core Servers ({len(gcore_servers)} total):") for server in gcore_servers[:10]: status = "ENABLED" if server.get('enabled') else "DISABLED" print(f" - {server.get('alias')} (ID: {server.get('id')}) [{status}]") if len(gcore_servers) > 10: print(f" ... and {len(gcore_servers) - 10} more") gsc_servers = servers.get('gsc_servers', []) print(f"\nGeViScope Servers ({len(gsc_servers)} total):") for server in gsc_servers: status = "ENABLED" if server.get('enabled') else "DISABLED" print(f" - {server.get('alias')} (ID: {server.get('id')}) [{status}]") # Check for Imex category print("\n" + "="*80) print("CHECKING FOR GSC-SPECIFIC ACTIONS") print("="*80) if 'Imex' in categories: imex_actions = categories['Imex'] print(f"\n[OK] Found Imex category with {len(imex_actions)} actions:") for action in imex_actions: print(f" - {action}") else: print("\n[ERROR] Imex category not found!") print("\n" + "="*80) print("TEST COMPLETE") print("="*80) if __name__ == '__main__': try: test_action_categories() except Exception as e: print(f"[ERROR] {str(e)}") import traceback traceback.print_exc()