def test_add_lineout(self, mock_except, init_prog): mock_except.side_effect = [None, ExpectedError] prog = init_prog ROI_dict = {'ROI_00': ROI((0, 0)), 'ROI_01': ROI((1, 1)), 'ROI_02': ROI((2, 2)), 'ROI_03': ROI((3, 3))} prog.roi_manager.ROIs = ROI_dict item_param_0 = Parameter(name='ROI_00') item_param_1 = Parameter(name='ROI_01') item_param_2 = Parameter(name='ROI_02') item_param_3 = Parameter(name='ROI_03') item_params = [item_param_0, item_param_1, item_param_2, item_param_3] for item_param in item_params: channel_param = Parameter(name='use_channel', type=[]) color_param = Parameter(name='Color', type=[]) children = [channel_param, color_param] item_param.addChildren(children) rois_param = Parameter(name='ROIs', children=item_params) prog.roi_manager.settings = Parameter(name='settings', children=[rois_param]) prog.labels = ['label_0', 'label_1', 'label_2', 'label_3'] prog.add_lineout(1) item = prog.roi_manager.ROIs['ROI_01'] item_param = prog.roi_manager.settings.child('ROIs', 'ROI_01') assert item_param.child('use_channel').value() == prog.labels[0] for ind in prog.lo_items: assert np.array_equal(prog.lo_data[ind], np.zeros((1,))) item_param_4 = Parameter(name='ROI_04') channel_param = Parameter(name='use_channel') color_param = Parameter(name='Color') children = [channel_param, color_param] item_param_4.addChildren(children) prog.roi_manager.settings.child('ROIs').addChild(item_param_4) prog._labels = [] with pytest.raises(ExpectedError): prog.add_lineout(4)