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