@@ -726,3 +726,28 @@ class MockScanManager:
726726 "burst_at_each_point" : 3 ,
727727 "system_config" : {"file_directory" : "/tmp/data" },
728728 }
729+
730+
731+ def test_scan_assembler_extracts_user_metadata_for_direct_scans (dm_with_devices ):
732+ parent = mock .MagicMock ()
733+ parent .device_manager = dm_with_devices
734+ parent .connector = mock .MagicMock ()
735+ parent .queue_manager .instruction_handler = mock .MagicMock ()
736+ assembler = ScanAssembler (parent = parent )
737+
738+ class MockScanManager :
739+ scan_dict = {"_v4_acquire" : Acquire }
740+
741+ msg = messages .ScanQueueMessage (
742+ scan_type = "_v4_acquire" ,
743+ parameter = {"args" : [], "kwargs" : {"exp_time" : 0.2 , "system_config" : {}}},
744+ queue = "primary" ,
745+ metadata = {"RID" : "rid-123" , "user_metadata" : {"sample" : "my_sample" }},
746+ )
747+
748+ with mock .patch .object (assembler , "scan_manager" , MockScanManager ()):
749+ request = assembler .assemble_direct_scan (msg , "scan_id" )
750+
751+ assert request .scan_info .metadata == {"RID" : "rid-123" }
752+ assert request .scan_info .user_metadata == {"sample" : "my_sample" }
753+ assert msg .metadata == {"RID" : "rid-123" , "user_metadata" : {"sample" : "my_sample" }}
0 commit comments