#!/usr/bin/env python # -*- coding: utf-8 -*- """Test that message definitions work with GUI.""" def test_message_imports(): """Test that all messages can be imported.""" from pymsc.core.message_definitions import ( msg_a1, msg_a2, msg_a3, msg_a4, msg_a5, msg_b6, msg_b7, msg_b9, msg_b10 ) assert msg_a1 is not None assert msg_a2 is not None print("✓ All messages imported successfully") def test_field_mappings(): """Test that field mappings work.""" from pymsc.core.field_mappings import get_field_path # Test A2 mappings (corrected for actual getter/setter names) assert get_field_path('A2', 'stby') == 'rdr_mode_command.stby' assert get_field_path('A2', 'range_scale') == 'param1.range_scale' # Test A1 mappings (corrected) assert get_field_path('A1', 'alt_block') == 'settings.altitude_block' print("✓ Field mappings working correctly") def test_legacy_api(): """Test that legacy API (get_value_for_field) works.""" from pymsc.core.message_definitions import msg_a2 # Test reading a value val = msg_a2.get_value_for_field('stby') assert isinstance(val, (int, type(None))) print(f"✓ Legacy API working (stby = {val})") def test_command_registry(): """Test that command registry can be imported.""" from pymsc.gui.command_registry import CHECKBOXES, COMBOBOXES, SPINBOXES assert len(CHECKBOXES) > 0 assert len(COMBOBOXES) > 0 # Verify structure checkbox = CHECKBOXES[0] assert 'message' in checkbox assert 'field' in checkbox print(f"✓ Command registry loaded ({len(CHECKBOXES)} checkboxes, {len(COMBOBOXES)} comboboxes)") if __name__ == '__main__': print("\n" + "=" * 60) print("Integration Test Suite") print("=" * 60 + "\n") test_message_imports() test_field_mappings() test_legacy_api() test_command_registry() print("\n" + "=" * 60) print("All Tests Passed!") print("=" * 60 + "\n")