Exemplo n.º 1
0
def _run_apply_properties_on_figure_with_image():
    img_fig = figure()
    img_ax = img_fig.add_subplot(111)
    img_ax.imshow([[0, 1], [0, 1]], label='old label')
    presenter = PlotConfigDialogPresenter(img_fig, view=Mock())
    with patch.object(presenter.tab_widget_presenters[1], 'update_view',
                      lambda: None):
        presenter.apply_properties()
    return img_ax
Exemplo n.º 2
0
def _run_apply_properties_on_figure_with_curve():
    fig = figure()
    ax = fig.add_subplot(111)
    ax.errorbar([0, 1], [0, 1], yerr=[0.1, 0.2], label='old label')
    presenter = PlotConfigDialogPresenter(fig, view=Mock())
    with patch.object(presenter.tab_widget_presenters[1], 'update_view',
                      lambda: None):
        presenter.apply_properties()
    return ax
Exemplo n.º 3
0
def _run_apply_properties_on_figure_with_legend():
    fig = figure()
    ax = fig.add_subplot(111)
    ax.plot([1, 2, 3], label='old label')
    legend = ax.legend()
    legend.get_frame().set_alpha(0.5)
    presenter = PlotConfigDialogPresenter(fig, view=Mock())
    with patch.object(presenter.tab_widget_presenters[1], 'update_view',
                      lambda: None):
        presenter.apply_properties()
    return ax
    def test_apply_properties_calls_success_callback_on_canvas_draw_success(
            self):
        fig = figure()
        fig.canvas.draw = Mock()
        mock_view = Mock()
        presenter = PlotConfigDialogPresenter(fig, mock_view)
        presenter.success_callback = Mock()
        presenter.error_callback = Mock()

        presenter.apply_properties()

        presenter.success_callback.assert_called()
        presenter.error_callback.assert_not_called()
def _run_apply_properties_on_figure_with_curve():
    fig = figure()
    ax = fig.add_subplot(111)
    ax.errorbar([0, 1], [0, 1], yerr=[0.1, 0.2], label='old label')

    with patch.object(AxesTabWidgetPresenter, 'update_view',
                      mock_axes_tab_presenter_update_view):
        presenter = PlotConfigDialogPresenter(fig, view=Mock())
    presenter.tab_widget_views[1][
        0].select_curve_combo_box.currentIndex.return_value = 0
    with patch.object(presenter.tab_widget_presenters[1], 'update_view',
                      lambda: None):
        with patch.object(presenter.tab_widget_presenters[1], 'axis_changed',
                          lambda: None):
            presenter.apply_properties()
    return ax
Exemplo n.º 6
0
def _run_apply_properties_on_figure_with_image():
    img_fig = figure()
    img_ax = img_fig.add_subplot(111)
    image = img_ax.imshow([[0, 1], [0, 1]])
    cb = img_fig.colorbar(image)
    cb.set_label('old label')

    with patch.object(AxesTabWidgetPresenter, 'update_view',
                      mock_axes_tab_presenter_update_view):
        presenter = PlotConfigDialogPresenter(img_fig, view=Mock())
    with patch.object(presenter.tab_widget_presenters[1], 'update_view',
                      lambda: None):
        with patch.object(presenter.tab_widget_presenters[1], 'axis_changed',
                          lambda: None):
            presenter.apply_properties()
    return img_ax
def _run_apply_properties_on_figure_with_legend(curve_view_mock):
    fig = figure()
    ax = fig.add_subplot(111)
    ax.plot([1, 2, 3], label='old label')
    legend = ax.legend()
    legend.get_frame().set_alpha(0.5)
    curve_view_mock.get_current_curve_name = CurveNameSideEffect(
        'old label', 'New label', switch_count=3)

    with patch.object(AxesTabWidgetPresenter, 'update_view',
                      mock_axes_tab_presenter_update_view):
        presenter = PlotConfigDialogPresenter(fig, view=Mock())
    with patch.object(presenter.tab_widget_presenters[1], 'update_view',
                      lambda: None):
        with patch.object(presenter.tab_widget_presenters[1], 'axis_changed',
                          lambda: None):
            presenter.apply_properties()
    return ax
def _run_apply_properties_on_figure_with_curve(curve_view_mock):
    fig = figure()
    ax = fig.add_subplot(111)
    ax.errorbar([0, 1], [0, 1], yerr=[0.1, 0.2], label='old label')
    ax.containers[0][2][0].axes.creation_args = [{'errorevery': 2}]
    curve_view_mock.get_current_curve_name = CurveNameSideEffect(
        'old label', 'New label', switch_count=6)

    with patch.object(AxesTabWidgetPresenter, 'update_view',
                      mock_axes_tab_presenter_update_view):
        presenter = PlotConfigDialogPresenter(fig, view=Mock())
    presenter.tab_widget_views[1][
        0].select_curve_combo_box.currentIndex.return_value = 0
    with patch.object(presenter.tab_widget_presenters[1], 'update_view',
                      lambda: None):
        with patch.object(presenter.tab_widget_presenters[1], 'axis_changed',
                          lambda: None):
            presenter.apply_properties()
    return ax
    def test_apply_all_properties_and_exist_does_exit_if_error_state_false(
            self):
        fig = figure()
        fig.canvas.draw = Mock()
        mock_view = Mock()
        presenter = PlotConfigDialogPresenter(fig, mock_view)
        presenter.apply_properties = Mock()
        presenter.error_state = False

        presenter.apply_properties_and_exit()

        mock_view.close.assert_called()
    def test_apply_properties_calls_error_callback_when_exception_raised_in_canvas_draw(
            self):
        canvas_draw_exception = Exception("Exception in canvas.draw")

        def raise_():
            raise canvas_draw_exception

        fig = figure()
        fig.canvas.draw = Mock(side_effect=lambda: raise_())
        mock_view = Mock()
        presenter = PlotConfigDialogPresenter(fig, mock_view)
        presenter.success_callback = Mock()
        presenter.error_callback = Mock()
        mock_presenters = [Mock(), Mock(), Mock(), Mock()]
        presenter.tab_widget_presenters = mock_presenters

        presenter.apply_properties()

        presenter.error_callback.assert_called_with(str(canvas_draw_exception))
        presenter.success_callback.assert_not_called()
        for mock in presenter.tab_widget_presenters:
            mock.update_view.assert_not_called()
    def test_tabs_present_updated_properties_from_figure_when_apply_clicked(
            self):
        fig = figure()
        ax = fig.add_subplot(111)
        ax.plot([0], [0])
        mock_view = Mock()
        presenter = PlotConfigDialogPresenter(fig, mock_view)

        # use mock manager to ensure all user properties are applied before view update
        mock_axes_presenter = presenter.tab_widget_presenters[1]
        mock_curves_presenter = presenter.tab_widget_presenters[2]
        mock_manager = Mock()
        mock_manager.attach_mock(mock_axes_presenter, "mock_axes_presenter")
        mock_manager.attach_mock(mock_curves_presenter,
                                 "mock_curves_presenter")

        presenter.apply_properties()
        mock_manager.assert_has_calls([
            call.mock_curves_presenter.apply_properties,
            call.mock_axes_presenter.apply_properties,
            call.mock_curves_presenter.update_view,
            call.mock_axes_presenter.update_view
        ])