Ignore:
Timestamp:
Nov 8, 2017 9:22:45 AM (6 years ago)
Author:
Piotr Rozyczko <rozyczko@…>
Branches:
ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc
Children:
0e80658
Parents:
412e069e
Message:

Converted unit tests

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/sas/qtgui/Plotting/UnitTesting/PlotterTest.py

    r99ea1b0 r3e8dee3  
    33import platform 
    44 
    5 from PyQt4 import QtGui 
    6 from PyQt4 import QtCore 
    7 from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas 
     5from PyQt5 import QtGui, QtWidgets, QtPrintSupport 
     6from PyQt5 import QtCore 
     7from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas 
    88from unittest.mock import MagicMock 
    99from unittest.mock import patch 
     
    2121import sas.qtgui.Plotting.Plotter as Plotter 
    2222 
    23 if not QtGui.QApplication.instance(): 
    24     app = QtGui.QApplication(sys.argv) 
     23if not QtWidgets.QApplication.instance(): 
     24    app = QtWidgets.QApplication(sys.argv) 
    2525 
    2626 
     
    5757        self.plotter.data = self.data 
    5858        self.plotter.show() 
    59         FigureCanvas.draw = MagicMock() 
     59        FigureCanvas.draw_idle = MagicMock() 
    6060 
    6161        self.plotter.plot(hide_error=False) 
    6262 
    6363        self.assertEqual(self.plotter.ax.get_xscale(), 'log') 
    64         self.assertTrue(FigureCanvas.draw.called) 
     64        self.assertTrue(FigureCanvas.draw_idle.called) 
     65 
     66        self.plotter.figure.clf() 
    6567 
    6668    def testPlotWithoutErrors(self): 
     
    6870        self.plotter.data = self.data 
    6971        self.plotter.show() 
    70         FigureCanvas.draw = MagicMock() 
     72        FigureCanvas.draw_idle = MagicMock() 
    7173 
    7274        self.plotter.plot(hide_error=True) 
    7375 
    7476        self.assertEqual(self.plotter.ax.get_yscale(), 'log') 
    75         self.assertTrue(FigureCanvas.draw.called) 
     77        self.assertTrue(FigureCanvas.draw_idle.called) 
     78        self.plotter.figure.clf() 
    7679 
    7780    def testCreateContextMenuQuick(self): 
     
    8992        # Trigger Print Image and make sure the method is called 
    9093        self.assertEqual(actions[1].text(), "Print Image") 
    91         QtGui.QPrintDialog.exec_ = MagicMock(return_value=QtGui.QDialog.Rejected) 
     94        QtPrintSupport.QPrintDialog.exec_ = MagicMock(return_value=QtWidgets.QDialog.Rejected) 
    9295        actions[1].trigger() 
    93         self.assertTrue(QtGui.QPrintDialog.exec_.called) 
     96        self.assertTrue(QtPrintSupport.QPrintDialog.exec_.called) 
    9497 
    9598        # Trigger Copy to Clipboard and make sure the method is called 
     
    104107        # Trigger Change Scale and make sure the method is called 
    105108        self.assertEqual(actions[6].text(), "Change Scale") 
    106         self.plotter.properties.exec_ = MagicMock(return_value=QtGui.QDialog.Rejected) 
     109        self.plotter.properties.exec_ = MagicMock(return_value=QtWidgets.QDialog.Rejected) 
    107110        actions[6].trigger() 
    108111        self.assertTrue(self.plotter.properties.exec_.called) 
     
    114117        def done(): 
    115118            self.clipboard_called = True 
    116         QtCore.QObject.connect(QtGui.qApp.clipboard(), QtCore.SIGNAL("dataChanged()"), done) 
     119        QtCore.QObject.connect(QtWidgets.qApp.clipboard(), QtCore.SIGNAL("dataChanged()"), done) 
    117120        actions[2].trigger() 
    118         QtGui.qApp.processEvents() 
     121        QtWidgets.qApp.processEvents() 
    119122        # Make sure clipboard got updated. 
    120123        self.assertTrue(self.clipboard_called) 
     
    136139        self.assertEqual(len(self.plotter.plot_dict), 1) 
    137140        self.assertEqual(len(self.plotter.ax.collections), 1) 
     141        self.plotter.figure.clf() 
    138142 
    139143    def testAddText(self): 
     
    153157        self.plotter.addText.color = MagicMock(return_value = test_color) 
    154158        # Return OK from the dialog 
    155         self.plotter.addText.exec_ = MagicMock(return_value = QtGui.QDialog.Accepted) 
     159        self.plotter.addText.exec_ = MagicMock(return_value = QtWidgets.QDialog.Accepted) 
    156160        # Add text to graph 
    157161        self.plotter.onAddText() 
     
    163167        self.assertEqual(self.plotter.textList[0].get_fontproperties().get_family()[0], 'Arial') 
    164168        self.assertEqual(self.plotter.textList[0].get_fontproperties().get_size(), 16) 
     169        self.plotter.figure.clf() 
    165170 
    166171    def testOnRemoveText(self): 
     
    172177        self.plotter.addText.textEdit.setText(test_text) 
    173178        # Return OK from the dialog 
    174         self.plotter.addText.exec_ = MagicMock(return_value = QtGui.QDialog.Accepted) 
     179        self.plotter.addText.exec_ = MagicMock(return_value = QtWidgets.QDialog.Accepted) 
    175180        # Add text to graph 
    176181        self.plotter.onAddText() 
     
    188193        self.plotter.onRemoveText() 
    189194        self.assertEqual(self.plotter.textList, []) 
     195        self.plotter.figure.clf() 
    190196 
    191197    def testOnSetGraphRange(self): 
     
    195201        self.plotter.plot(self.data) 
    196202        self.plotter.show() 
    197         self.plotter.setRange.exec_ = MagicMock(return_value = QtGui.QDialog.Accepted) 
     203        self.plotter.setRange.exec_ = MagicMock(return_value = QtWidgets.QDialog.Accepted) 
    198204        self.plotter.setRange.xrange = MagicMock(return_value = new_x) 
    199205        self.plotter.setRange.yrange = MagicMock(return_value = new_y) 
     
    204210        self.assertEqual(self.plotter.ax.get_xlim(), new_x) 
    205211        self.assertEqual(self.plotter.ax.get_ylim(), new_y) 
     212        self.plotter.figure.clf() 
    206213 
    207214    def testOnResetGraphRange(self): 
     
    215222 
    216223        # mock setRange methods 
    217         self.plotter.setRange.exec_ = MagicMock(return_value = QtGui.QDialog.Accepted) 
     224        self.plotter.setRange.exec_ = MagicMock(return_value = QtWidgets.QDialog.Accepted) 
    218225        self.plotter.setRange.xrange = MagicMock(return_value = new_x) 
    219226        self.plotter.setRange.yrange = MagicMock(return_value = new_y) 
     
    228235        self.assertNotEqual(self.plotter.ax.get_xlim(), new_x) 
    229236        self.assertNotEqual(self.plotter.ax.get_ylim(), new_y) 
     237        self.plotter.figure.clf() 
    230238 
    231239    def testOnLinearFit(self): 
     
    233241        self.plotter.plot(self.data) 
    234242        self.plotter.show() 
    235         QtGui.QDialog.exec_ = MagicMock(return_value=QtGui.QDialog.Accepted) 
     243        QtWidgets.QDialog.exec_ = MagicMock(return_value=QtWidgets.QDialog.Accepted) 
    236244 
    237245        # Just this one plot 
     
    240248 
    241249        # Check that exec_ got called 
    242         self.assertTrue(QtGui.QDialog.exec_.called) 
     250        self.assertTrue(QtWidgets.QDialog.exec_.called) 
     251        self.plotter.figure.clf() 
    243252 
    244253    def testOnRemovePlot(self): 
     
    275284        # Assure the plotter window is closed 
    276285        self.assertFalse(self.plotter.isVisible()) 
    277  
     286        self.plotter.figure.clf() 
    278287 
    279288    def testRemovePlot(self): 
     
    306315        # The hide_error flag should also remain 
    307316        self.assertTrue(self.plotter.plot_dict[2].hide_error) 
     317        self.plotter.figure.clf() 
    308318 
    309319    def testOnToggleHideError(self): 
     
    336346        # The hide_error flag should toggle 
    337347        self.assertEqual(self.plotter.plot_dict[2].hide_error, not error_status) 
     348        self.plotter.figure.clf() 
    338349 
    339350    def testOnFitDisplay(self): 
     
    352363        self.plotter.plot.assert_called_with(data=self.plotter.fit_result, 
    353364                                             hide_error=True, marker='-') 
     365        self.plotter.figure.clf() 
    354366 
    355367    def testReplacePlot(self): 
     
    389401        # The hide_error flag should be as set 
    390402        self.assertEqual(self.plotter.plot_dict[2].hide_error, error_status) 
     403        self.plotter.figure.clf() 
    391404 
    392405    def notestOnModifyPlot(self): 
     
    408421        with patch('sas.qtgui.Plotting.PlotProperties.PlotProperties') as mock: 
    409422            instance = mock.return_value 
    410             QtGui.QDialog.exec_ = MagicMock(return_value=QtGui.QDialog.Accepted) 
     423            QtWidgets.QDialog.exec_ = MagicMock(return_value=QtWidgets.QDialog.Accepted) 
    411424            instance.symbol.return_value = 7 
    412425 
    413426            self.plotter.onModifyPlot(2) 
     427        self.plotter.figure.clf() 
    414428 
    415429 
Note: See TracChangeset for help on using the changeset viewer.