""" Verify if our test mapping exists in the .set file using the Python parser """ import sys from pathlib import Path # Add codex path to import the parser sys.path.insert(0, r'C:\DEV\COPILOT_codex') from geviset_parser import load_set, _find_folder, _child_by_name # Path to GeViSoft .set file SET_FILE = Path(r"C:\GEVISOFT\GeViSoftNET.set") if not SET_FILE.exists(): print(f"ERROR: .set file not found at {SET_FILE}") print("Please provide the correct path to GeViSoftNET.set") sys.exit(1) print(f"Loading .set file from: {SET_FILE}") tree = load_set(SET_FILE) # Navigate to MappingRules mapping_rules = _find_folder(tree, ["MappingRules"]) if not mapping_rules: print("ERROR: MappingRules folder not found!") sys.exit(1) print(f"\nTotal rule folders: {len(mapping_rules.get('children', []))}") # Look for our test mappings test_mappings = [] all_mappings = [] for rule_folder in mapping_rules.get('children', []): if rule_folder.get('type') == 'folder': name_node = _child_by_name(rule_folder, '@') mapping_name = name_node.get('value', '') if name_node else '' all_mappings.append((rule_folder.get('name'), mapping_name)) if 'GRPC_TEST' in mapping_name or 'TEST' in mapping_name: test_mappings.append({ 'id': rule_folder.get('name'), 'name': mapping_name, 'folder': rule_folder }) if test_mappings: print(f"\n{'='*70}") print(f"FOUND {len(test_mappings)} TEST MAPPING(S):") print(f"{'='*70}") for mapping in test_mappings: print(f"\nRule ID: {mapping['id']}") print(f"Input Name: {mapping['name']}") # Get Rules folder rules_folder = _child_by_name(mapping['folder'], 'Rules') if rules_folder: output_count = len([c for c in rules_folder.get('children', []) if c.get('type') == 'folder']) print(f"Output Actions: {output_count}") for output in rules_folder.get('children', []): if output.get('type') == 'folder': output_name = _child_by_name(output, '@') gsc_action = _child_by_name(output, 'GscAction') gcore_action = _child_by_name(output, 'GCoreAction') action_name = (gsc_action or gcore_action or output_name or {}).get('value', '') print(f" - {action_name}") else: print(f"\n{'='*70}") print("NO TEST MAPPINGS FOUND") print(f"{'='*70}") print("\nLast 5 mappings:") for rule_id, name in all_mappings[-5:]: print(f" [{rule_id}] {name[:60]}") print(f"\n{'='*70}")