#!/usr/bin/env python3 """ Test script for MCP for Unity Telemetry System Run this to verify telemetry is working correctly """ import os from pathlib import Path import sys # Add src to Python path for imports sys.path.insert(0, str(Path(__file__).parent)) def test_telemetry_basic(): """Test basic telemetry functionality""" # Avoid stdout noise in tests try: from telemetry import ( get_telemetry, record_telemetry, record_milestone, RecordType, MilestoneType, is_telemetry_enabled ) pass except ImportError as e: # Silent failure path for tests return False # Test telemetry enabled status _ = is_telemetry_enabled() # Test basic record try: record_telemetry(RecordType.VERSION, { "version": "3.0.2", "test_run": True }) pass except Exception as e: # Silent failure path for tests return False # Test milestone recording try: is_first = record_milestone(MilestoneType.FIRST_STARTUP, { "test_mode": True }) _ = is_first except Exception as e: # Silent failure path for tests return False # Test telemetry collector try: collector = get_telemetry() _ = collector except Exception as e: # Silent failure path for tests return False return True def test_telemetry_disabled(): """Test telemetry with disabled state""" # Silent for tests # Set environment variable to disable telemetry os.environ["DISABLE_TELEMETRY"] = "true" # Re-import to get fresh config import importlib import telemetry importlib.reload(telemetry) from telemetry import is_telemetry_enabled, record_telemetry, RecordType _ = is_telemetry_enabled() if not is_telemetry_enabled(): pass # Test that records are ignored when disabled record_telemetry(RecordType.USAGE, {"test": "should_be_ignored"}) pass return True else: pass return False def test_data_storage(): """Test data storage functionality""" # Silent for tests try: from telemetry import get_telemetry collector = get_telemetry() data_dir = collector.config.data_dir _ = (data_dir, collector.config.uuid_file, collector.config.milestones_file) # Check if files exist if collector.config.uuid_file.exists(): pass else: pass if collector.config.milestones_file.exists(): pass else: pass return True except Exception as e: # Silent failure path for tests return False def main(): """Run all telemetry tests""" # Silent runner for CI tests = [ test_telemetry_basic, test_data_storage, test_telemetry_disabled, ] passed = 0 failed = 0 for test in tests: try: if test(): passed += 1 pass else: failed += 1 pass except Exception as e: failed += 1 pass _ = (passed, failed) if failed == 0: pass return True else: pass return False if __name__ == "__main__": success = main() sys.exit(0 if success else 1)