def test_subs_input(hw): def cb1(name, doc): pass def cb2(name, doc): pass def cb3(name, doc): pass def cb_fact4(scan): def cb4(name, doc): pass return cb4 def cb_fact5(scan): def cb5(name, doc): pass return cb5 # Test input normalization on OO plans obj_ascan = AbsScanPlan([hw.det], hw.motor, 1, 5, 4) obj_ascan.subs = cb1 assert obj_ascan.subs == {'all': [cb1], 'start': [], 'stop': [], 'descriptor': [], 'event': []} obj_ascan.subs.update({'start': [cb2]}) assert obj_ascan.subs == {'all': [cb1], 'start': [cb2], 'stop': [], 'descriptor': [], 'event': []} obj_ascan.subs = [cb2, cb3] assert obj_ascan.subs == {'all': [cb2, cb3], 'start': [], 'stop': [], 'descriptor': [], 'event': []}