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
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
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
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 ])