Example #1
0
    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)