"""Test TFTP logging functionality. This script tests that TFTP commands are properly logged to the separate log widget. """ from pydownloadfwviasrio.tftp_client import SRIOTFTPClient from pydownloadfwviasrio.core.core import FirmwareFlasher from pydownloadfwviasrio.profiles import FlashProfile def general_log(msg: str) -> None: """Simula il log generale.""" print(f"[GENERAL] {msg}") def tftp_log(msg: str) -> None: """Simula il log TFTP.""" print(f"[TFTP ] {msg}") def test_logging(): """Test che i log siano separati correttamente.""" print("=" * 60) print("Testing TFTP logging separation") print("=" * 60) # Create a test profile profile = FlashProfile( name="TEST_TARGET", slot_address="0x10", ip="192.168.1.100", port=69, base_address=0x01000000, size=0x100000, binary_path=None, ) # Create client and flasher client = SRIOTFTPClient(profile.ip, profile.port) flasher = FirmwareFlasher(profile=profile, client=client) # Test data test_data = b"\xAA\xBB\xCC\xDD" * 64 # 256 bytes address = 0x01000000 print("\n--- Testing WRITE operation ---") print("Expected: General log shows progress, TFTP log shows commands") print() # Simulate write (will fail because no server, but we'll see the log messages) try: flasher.write(address, test_data, log=general_log, tftp_log=tftp_log) except Exception as e: print(f"\n[INFO] Operation failed as expected (no server): {e}") print("\n" + "=" * 60) print("Test completed!") print("=" * 60) if __name__ == "__main__": test_logging()