#!/usr/bin/env python3 """Direct gRPC test for ReadActionMappings endpoint""" import sys import os import grpc # Add the API source path to import the protos module sys.path.insert(0, r'C:\DEV\COPILOT\geutebruck-api\src\api') from protos import configuration_pb2 from protos import configuration_pb2_grpc def test_read_action_mappings(): """Test the ReadActionMappings gRPC endpoint directly""" print("Connecting to SDK Bridge at localhost:50051...") with grpc.insecure_channel('localhost:50051') as channel: stub = configuration_pb2_grpc.ConfigurationServiceStub(channel) print("Calling ReadActionMappings...") request = configuration_pb2.ReadActionMappingsRequest() try: response = stub.ReadActionMappings(request) print(f"\nSuccess: {response.success}") print(f"Total Count: {response.total_count}") print(f"Error Message: {response.error_message if response.error_message else 'None'}") print(f"\nNumber of mappings returned: {len(response.mappings)}") if response.mappings: print("\n=== Mapping Summary ===") total_actions = sum(len(m.actions) for m in response.mappings) print(f"Total action mappings: {len(response.mappings)}") print(f"Total actions across all mappings: {total_actions}") print(f"\nFirst 3 mapping offsets:") for i, mapping in enumerate(response.mappings[:3]): print(f" Mapping {i+1}: offset {mapping.start_offset}, {len(mapping.actions)} actions") print("\n✅ SUCCESS: All 64 action mappings retrieved!") else: print("\n⚠️ No mappings returned (expected ~64)") except grpc.RpcError as e: print(f"\n❌ gRPC Error: {e.code()}") print(f" Details: {e.details()}") return False return response.success and response.total_count > 0 if __name__ == '__main__': success = test_read_action_mappings() sys.exit(0 if success else 1)