SXXXXXXX_PyMsc/tests/test_new_messages.py

52 lines
1.7 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""Quick test script for new message definitions."""
from pymsc.core.message_definitions import msg_a1, msg_a2, msg_b7
from pymsc.core.field_mappings import get_field_path
print("=" * 60)
print("Testing New Message Definitions")
print("=" * 60)
# Test 1: Message structure
print("\n1. Message Structure Test:")
print(f" msg_a2 type: {type(msg_a2)}")
print(f" msg_a2._internal type: {type(msg_a2._internal)}")
print(f" msg_a2 has rdr_mode_command: {hasattr(msg_a2._internal, 'rdr_mode_command')}")
print(f" msg_a2 has param1: {hasattr(msg_a2._internal, 'param1')}")
# Test 2: Field mapping
print("\n2. Field Mapping Test:")
test_fields = ['stby', 'freeze', 'range_scale', 'rdr_mode_command']
for field in test_fields:
path = get_field_path('A2', field)
print(f" A2.{field} -> {path}")
# Test 3: Field access (read)
print("\n3. Field Access Test (nested paths):")
try:
# Test direct nested path access
val = msg_a2.get_field_value('rdr_mode_command.stby')
print(f" msg_a2.get_field_value('rdr_mode_command.stby') = {val}")
except Exception as e:
print(f" ERROR: {e}")
# Test 4: Legacy API compatibility
print("\n4. Legacy API Test:")
try:
# Test legacy flat field name
val = msg_a2.get_value_for_field('stby')
print(f" msg_a2.get_value_for_field('stby') = {val}")
except Exception as e:
print(f" ERROR: {e}")
# Test 5: B7 tellback structure
print("\n5. B7 Tellback Structure:")
print(f" msg_b7._internal type: {type(msg_b7._internal)}")
print(f" msg_b7 has rdr_mode_tellback: {hasattr(msg_b7._internal, 'rdr_mode_tellback')}")
print("\n" + "=" * 60)
print("Test Complete!")
print("=" * 60)