Skip to content
Snippets Groups Projects
Commit 8b30753a authored by Phil's avatar Phil Committed by Phil Colebrooke
Browse files

Re #26591 added tests

parent c614135b
No related branches found
No related tags found
No related merge requests found
......@@ -321,16 +321,16 @@ class CurvesTabWidgetPresenter:
"""
current_curve_index = self.view.select_curve_combo_box.currentIndex()
line_style_index = self.view.line.line_style_combo_box.currentIndex()
draw_style_index = self.view.line.draw_style_combo_box.currentIndex()
width = self.view.line.line_width_spin_box.value()
line_style = self.view.line.get_style()
draw_style = self.view.line.get_draw_style()
width = self.view.line.get_width()
for i in range(len(self.curve_names_dict)):
self.view.select_curve_combo_box.setCurrentIndex(i)
self.view.line.line_style_combo_box.setCurrentIndex(line_style_index)
self.view.line.draw_style_combo_box.setCurrentIndex(draw_style_index)
self.view.line.line_width_spin_box.setValue(width)
self.view.line.set_style(line_style)
self.view.line.set_draw_style(draw_style)
self.view.line.set_width(width)
self.apply_properties()
......@@ -340,14 +340,14 @@ class CurvesTabWidgetPresenter:
def marker_apply_to_all(self):
current_curve_index = self.view.select_curve_combo_box.currentIndex()
marker_style_index = self.view.marker.marker_style_combo_box.currentIndex()
marker_size = self.view.marker.marker_size_spin_box.value()
marker_style = self.view.marker.get_style()
marker_size = self.view.marker.get_size()
for i in range(len(self.curve_names_dict)):
self.view.select_curve_combo_box.setCurrentIndex(i)
self.view.marker.marker_style_combo_box.setCurrentIndex(marker_style_index)
self.view.marker.marker_size_spin_box.setValue(marker_size)
self.view.marker.set_style(marker_style)
self.view.marker.set_size(marker_size)
self.apply_properties()
......@@ -357,24 +357,24 @@ class CurvesTabWidgetPresenter:
def errorbars_apply_to_all(self):
current_curve_index = self.view.select_curve_combo_box.currentIndex()
checked = self.view.errorbars.hide_errorbars_tickbox.isChecked()
checked = self.view.errorbars.get_hide()
if not checked:
width = self.view.errorbars.width_spin_box.value()
capsize = self.view.errorbars.capsize_spin_box.value()
cap_thickness = self.view.errorbars.cap_thickness_spin_box.value()
error_every = self.view.errorbars.error_every_spin_box.value()
width = self.view.errorbars.get_width()
capsize = self.view.errorbars.get_capsize()
cap_thickness = self.view.errorbars.get_cap_thickness()
error_every = self.view.errorbars.get_error_every()
for i in range(len(self.curve_names_dict)):
self.view.select_curve_combo_box.setCurrentIndex(i)
self.view.errorbars.hide_errorbars_tickbox.setChecked(checked)
self.view.errorbars.set_hide(checked)
if not checked:
self.view.errorbars.width_spin_box.setValue(width)
self.view.errorbars.capsize_spin_box.setValue(capsize)
self.view.errorbars.cap_thickness_spin_box.setValue(cap_thickness)
self.view.errorbars.error_every_spin_box.setValue(error_every)
self.view.errorbars.set_width(width)
self.view.errorbars.set_capsize(capsize)
self.view.errorbars.set_cap_thickness(cap_thickness)
self.view.errorbars.set_error_every(error_every)
self.apply_properties()
......
......@@ -11,8 +11,10 @@ from __future__ import (absolute_import, unicode_literals)
import unittest
from matplotlib import use as mpl_use
mpl_use('Agg') # noqa
from matplotlib.pyplot import figure
from qtpy.QtCore import Qt
from mantid.simpleapi import CreateWorkspace
from mantid.plots import MantidAxes # register MantidAxes projection # noqa
......@@ -217,6 +219,78 @@ class CurvesTabWidgetPresenterTest(unittest.TestCase):
presenter.apply_properties()
self.assertFalse(ax.containers[0][2][0].get_visible())
def make_figure_with_multiple_curves(self):
fig = figure()
ax = fig.add_subplot(111, projection='mantid')
ax.set_title('Axes 0')
ax.plot(self.ws, specNum=1, label='Workspace')
ax.plot(self.ws, specNum=1, label='Workspace 2')
ax.plot(self.ws, specNum=1, label='Workspace 3')
return fig
@patch.object(CurvesTabWidgetPresenter, "apply_properties")
def test_line_apply_to_all_button_sets_and_applies_properties_to_each_curve(self, mock_apply_properties):
fig = self.make_figure_with_multiple_curves()
presenter = self._generate_presenter(fig=fig)
presenter.line_apply_to_all()
self.assertEqual(presenter.view.line.set_style.call_count, 3)
self.assertEqual(presenter.view.line.set_draw_style.call_count, 3)
self.assertEqual(presenter.view.line.set_width.call_count, 3)
self.assertEqual(mock_apply_properties.call_count, 3)
@patch.object(CurvesTabWidgetPresenter, "apply_properties")
def test_marker_apply_to_all_button_sets_and_applies_properties_to_each_curve(self, mock_apply_properties):
fig = self.make_figure_with_multiple_curves()
presenter = self._generate_presenter(fig=fig)
presenter.marker_apply_to_all()
self.assertEqual(presenter.view.marker.set_style.call_count, 3)
self.assertEqual(presenter.view.marker.set_size.call_count, 3)
self.assertEqual(mock_apply_properties.call_count, 3)
@patch.object(CurvesTabWidgetPresenter, "apply_properties")
def test_errorbar_apply_to_all_button_sets_and_applies_properties_to_each_curve_if_hide_errorbars_is_unticked\
(self, mock_apply_properties):
fig = self.make_figure_with_multiple_curves()
mock_view = Mock(get_selected_ax_name=lambda: "Axes 0: (0, 0)",
get_selected_curve_name=lambda: "Workspace")
mock_view.errorbars.get_hide.return_value = False
presenter = self._generate_presenter(fig=fig, mock_view=mock_view)
presenter.errorbars_apply_to_all()
self.assertEqual(presenter.view.errorbars.set_hide.call_count, 3)
self.assertEqual(presenter.view.errorbars.set_width.call_count, 3)
self.assertEqual(presenter.view.errorbars.set_capsize.call_count, 3)
self.assertEqual(presenter.view.errorbars.set_cap_thickness.call_count, 3)
self.assertEqual(presenter.view.errorbars.set_error_every.call_count, 3)
self.assertEqual(mock_apply_properties.call_count, 3)
@patch.object(CurvesTabWidgetPresenter, "apply_properties")
def test_errorbar_apply_to_all_button_does_not_set_properties_if_hide_errorbars_is_ticked\
(self, mock_apply_properties):
fig = self.make_figure_with_multiple_curves()
mock_view = Mock(get_selected_ax_name=lambda: "Axes 0: (0, 0)",
get_selected_curve_name=lambda: "Workspace")
mock_view.errorbars.get_hide.return_value = True
presenter = self._generate_presenter(fig=fig, mock_view=mock_view)
presenter.errorbars_apply_to_all()
self.assertEqual(presenter.view.errorbars.set_hide.call_count, 3)
self.assertEqual(presenter.view.errorbars.set_width.call_count, 0)
self.assertEqual(presenter.view.errorbars.set_capsize.call_count, 0)
self.assertEqual(presenter.view.errorbars.set_cap_thickness.call_count, 0)
self.assertEqual(presenter.view.errorbars.set_error_every.call_count, 0)
self.assertEqual(mock_apply_properties.call_count, 3)
if __name__ == '__main__':
unittest.main()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment