From 1e52d9cb4c6145699c73be19de4ca789b02658d7 Mon Sep 17 00:00:00 2001 From: Phil Colebrooke <philipc99@hotmail.co.uk> Date: Thu, 2 Apr 2020 14:44:16 +0100 Subject: [PATCH] Re #28464 fix tests so they still pass --- .../test/test_axestabwidgetpresenter.py | 58 ++++++------------- .../test/test_apply_all_properties.py | 34 ++++++++--- 2 files changed, 43 insertions(+), 49 deletions(-) diff --git a/qt/python/mantidqt/widgets/plotconfigdialog/axestabwidget/test/test_axestabwidgetpresenter.py b/qt/python/mantidqt/widgets/plotconfigdialog/axestabwidget/test/test_axestabwidgetpresenter.py index ed9b8188047..918dd7c301b 100644 --- a/qt/python/mantidqt/widgets/plotconfigdialog/axestabwidget/test/test_axestabwidgetpresenter.py +++ b/qt/python/mantidqt/widgets/plotconfigdialog/axestabwidget/test/test_axestabwidgetpresenter.py @@ -38,7 +38,9 @@ class AxesTabWidgetPresenterTest(unittest.TestCase): ax2.plot([-1000000, 10000], [10, 12], 'rx') def _generate_presenter(self): - mock_view = mock.Mock(get_selected_ax_name=lambda: "My Axes: (0, 0)") + mock_view = mock.Mock(get_selected_ax_name=lambda: "My Axes: (0, 0)", + get_axis=lambda: "x", + get_properties=lambda: {}) return Presenter(self.fig, view=mock_view) def test_generate_ax_name_returns_correct_name(self): @@ -51,26 +53,24 @@ class AxesTabWidgetPresenterTest(unittest.TestCase): ax_mock = mock.MagicMock() presenter = self._generate_presenter() with mock.patch.object(presenter, 'get_selected_ax', lambda: ax_mock): + presenter.current_view_props = presenter.get_selected_ax_properties() presenter.apply_properties() # Mock properties object and view then test that the view's setters # are called with the correct property values - view_mock = presenter.view - get_props_mock = view_mock.get_properties - view_mock.get_properties.assert_called_once_with() ax_mock.set_title.assert_called_once_with( - get_props_mock().title) + presenter.current_view_props.title) ax_mock.set_xlim.assert_called_once_with( - get_props_mock().xlim) + presenter.current_view_props.xlim) ax_mock.set_xlabel.assert_called_once_with( - get_props_mock().xlabel) + presenter.current_view_props.xlabel) ax_mock.set_xscale.assert_called_once_with( - get_props_mock().xscale) + presenter.current_view_props.xscale) ax_mock.set_ylim.assert_called_once_with( - get_props_mock().ylim) + presenter.current_view_props.ylim) ax_mock.set_ylabel.assert_called_once_with( - get_props_mock().ylabel) + presenter.current_view_props.ylabel) ax_mock.set_yscale.assert_called_once_with( - get_props_mock().yscale) + presenter.current_view_props.yscale) def test_get_axes_names_dict(self): actual_dict = get_axes_names_dict(self.fig) @@ -130,42 +130,20 @@ class AxesTabWidgetPresenterTest(unittest.TestCase): def test_update_view_calls_correct_setters_with_correct_values(self): presenter = self._generate_presenter() - new_view_mock = mock.Mock(get_selected_ax_name=lambda: "My Axes: (0, 0)") + new_view_mock = mock.Mock(get_selected_ax_name=lambda: "My Axes: (0, 0)", + get_axis=lambda: "x", + get_properties=lambda: {}) ax = self.fig.get_axes()[0] - setters = ['set_title', 'set_xlower_limit', 'set_xupper_limit', - 'set_ylower_limit', 'set_yupper_limit', 'set_xlabel', - 'set_ylabel', 'set_xscale', 'set_yscale'] + setters = ['set_title', 'set_lower_limit', 'set_upper_limit', + 'set_label', 'set_scale'] expected_vals = [self.title, - ax.get_xlim()[0], ax.get_xlim()[1], ax.get_ylim()[0], - ax.get_ylim()[1], self.x_label, self.y_label, - self.x_scale, self.y_scale] + ax.get_xlim()[0], ax.get_xlim()[1], + self.x_label, self.x_scale] with mock.patch.object(presenter, 'view', new_view_mock): presenter.update_view() for setter, value in zip(setters, expected_vals): getattr(new_view_mock, setter).assert_called_once_with(value) - def test_apply_properties_correctly_handles_negative_axis_when_changing_to_log_scale(self): - fig = figure() - ax = fig.add_subplot(111) - ax.plot([0, 1], [10, 12], 'rx') - ax.set_title("My Axes") - mock_view = mock.Mock(get_selected_ax_name=lambda: "My Axes: (0, 0)") - presenter = Presenter(fig, view=mock_view) - - ax_properties = AxProperties.from_ax_object(ax) - min_limit = -10 - max_limit = 10 - ax_properties.xscale = 'Log' - ax_properties.xlim = (min_limit, max_limit) - ax_properties.yscale = 'Log' - ax_properties.ylim = (min_limit, max_limit) - presenter.view.get_properties.return_value = ax_properties - - presenter.apply_properties() - - self.assertEqual(ax.get_xlim(), (0.01*max_limit, max_limit)) - self.assertEqual(ax.get_ylim(), (0.01*max_limit, max_limit)) - if __name__ == '__main__': unittest.main() diff --git a/qt/python/mantidqt/widgets/plotconfigdialog/test/test_apply_all_properties.py b/qt/python/mantidqt/widgets/plotconfigdialog/test/test_apply_all_properties.py index 755f292774e..3d3040498d5 100644 --- a/qt/python/mantidqt/widgets/plotconfigdialog/test/test_apply_all_properties.py +++ b/qt/python/mantidqt/widgets/plotconfigdialog/test/test_apply_all_properties.py @@ -10,6 +10,7 @@ import unittest import matplotlib from matplotlib import use as mpl_use + mpl_use('Agg') # noqa from matplotlib.colors import LogNorm from matplotlib.patches import BoxStyle @@ -19,6 +20,7 @@ from mantid.plots.legend import LegendProperties from unittest.mock import Mock, patch from mantidqt.widgets.plotconfigdialog.colorselector import convert_color_to_hex from mantidqt.widgets.plotconfigdialog.axestabwidget import AxProperties +from mantidqt.widgets.plotconfigdialog.axestabwidget.presenter import AxesTabWidgetPresenter from mantidqt.widgets.plotconfigdialog.imagestabwidget import ImageProperties from mantidqt.widgets.plotconfigdialog.curvestabwidget import CurveProperties from mantidqt.widgets.plotconfigdialog.presenter import PlotConfigDialogPresenter @@ -28,7 +30,6 @@ CURVE_VIEW = 'mantidqt.widgets.plotconfigdialog.curvestabwidget.presenter.Curves IMAGE_VIEW = 'mantidqt.widgets.plotconfigdialog.imagestabwidget.presenter.ImagesTabWidgetView' LEGEND_VIEW = 'mantidqt.widgets.plotconfigdialog.legendtabwidget.presenter.LegendTabWidgetView' - new_ax_view_props = { 'title': 'New Title', 'xlim': [0.1, 10], @@ -88,15 +89,23 @@ new_legend_props = { 'marker_label_padding': 1.0} +def mock_axes_tab_presenter_update_view(presenter): + presenter.current_view_props = new_ax_view_props + + 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(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): - presenter.apply_properties() + with patch.object(presenter.tab_widget_presenters[1], 'axis_changed', + lambda: None): + presenter.apply_properties() return ax @@ -104,23 +113,30 @@ 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(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): - presenter.apply_properties() + 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(): fig = figure() ax = fig.add_subplot(111) - ax.plot([1,2,3], label='old label') + 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(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): - presenter.apply_properties() + with patch.object(presenter.tab_widget_presenters[1], 'axis_changed', + lambda: None): + presenter.apply_properties() return ax @@ -262,7 +278,7 @@ class ApplyAllPropertiesTest(unittest.TestCase): def test_apply_properties_on_figure_with_curve_sets_cap_size(self): self.assertEqual(new_curve_view_props['capsize'], - self.new_curve[1][0].get_markersize()/2) + self.new_curve[1][0].get_markersize() / 2) def test_apply_properties_on_figure_with_curve_sets_cap_thickness(self): self.assertEqual(new_curve_view_props['capthick'], -- GitLab