Changeset 144fe21 in sasview for src/sas/qtgui
- Timestamp:
- Jul 26, 2018 5:30:15 AM (6 years ago)
- Branches:
- ESS_GUI, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc
- Children:
- dc71408
- Parents:
- e793f62
- git-author:
- Piotr Rozyczko <rozyczko@…> (07/26/18 05:28:51)
- git-committer:
- Piotr Rozyczko <rozyczko@…> (07/26/18 05:30:15)
- Location:
- src/sas/qtgui
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/qtgui/Calculators/ResolutionCalculatorPanel.py
rfa05c6c1 r144fe21 707 707 Create a template for 2D data 708 708 """ 709 self.plotter = Plotter2DWidget(self, quickplot=True)709 self.plotter = Plotter2DWidget(self, manager=self.manager, quickplot=True) 710 710 self.plotter.scale = 'linear' 711 711 self.plotter.cmap = None -
src/sas/qtgui/Calculators/UnitTesting/ResolutionCalculatorPanelTest.py
re90988c r144fe21 12 12 from twisted.internet import threads 13 13 14 # from UnitTesting.TestUtils import QtSignalSpy 15 # from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas 14 from sas.qtgui.Utilities.GuiUtils import Communicate 16 15 from sas.qtgui.Calculators.ResolutionCalculatorPanel \ 17 16 import ResolutionCalculatorPanel 18 19 # from sas.qtgui.MainWindow.DataManager import DataManager20 # from sas.qtgui.MainWindow.GuiManager import GuiManager21 # from sas.qtgui.Utilities.GuiUtils import *22 23 17 24 18 BG_COLOR_ERR = 'background-color: rgb(244, 170, 164);' … … 34 28 """Test the ResolutionCalculator""" 35 29 def setUp(self): 30 class dummy_manager(object): 31 communicator = Communicate() 36 32 """Create the ResolutionCalculator""" 37 self.widget = ResolutionCalculatorPanel( None)33 self.widget = ResolutionCalculatorPanel(dummy_manager()) 38 34 39 35 # self.widget.onCompute = MagicMock() … … 41 37 def tearDown(self): 42 38 """Destroy the ResolutionCalculator""" 39 if self.widget.plotter is not None: 40 self.widget.plotter.close() 43 41 self.widget.close() 44 42 self.widget = None -
src/sas/qtgui/Calculators/UnitTesting/SLDCalculatorTest.py
re90988c r144fe21 20 20 import sas.qtgui.Utilities.LocalConfig 21 21 22 #if not QtWidgets.QApplication.instance(): 23 # app = QtWidgets.QApplication(sys.argv) 24 app = QtWidgets.QApplication(sys.argv) 22 if not QtWidgets.QApplication.instance(): 23 app = QtWidgets.QApplication(sys.argv) 25 24 26 25 class SldResultTest(unittest.TestCase): -
src/sas/qtgui/GUITests.py
rd0528c4 r144fe21 11 11 by running ``python setup.py install`` in both repositories. 12 12 13 The tests can be run with ``python GUITests.py``, or to get more verbose 14 console output (recommended), use ``python GUITests.py -v``. 13 The tests can be run with ``python GUITests.py``, or 14 ``python GUITests.py suiteName1 suiteName2 ...`` for a subset of tests. 15 16 To get more verbose console output (recommended), use ``python GUITests.py -v`` 17 or modify tge VERBOSITY module variable. 15 18 """ 19 20 # Llist of all suite names. Every time a new suite is added, its name should 21 # also be added here 22 ALL_SUITES = [ 23 'calculatorsSuite', 24 'mainSuite', 25 'fittingSuite', 26 'plottingSuite', 27 'utilitiesSuite', 28 'perspectivesSuite', 29 ] 30 31 # Define output verbosity 32 #VERBOSITY = 0 # quiet - just the total number of tests run and global result 33 VERBOSITY = 1 # default - quiet + a dot for every successful test or a F for failure 34 #VERBOSITY = 2 # verbose - default + help string of every test and the result 16 35 17 36 # Prepare the general QApplication instance … … 83 102 from Perspectives.Inversion.UnitTesting import InversionPerspectiveTest 84 103 85 def suite():104 def plottingSuite(): 86 105 suites = ( 87 106 # Plotting … … 101 120 unittest.makeSuite(PlotterBaseTest.PlotterBaseTest, 'test'), 102 121 unittest.makeSuite(PlotterTest.PlotterTest, 'test'), 103 122 ) 123 return unittest.TestSuite(suites) 124 125 def mainSuite(): 126 suites = ( 104 127 # Main window 105 128 unittest.makeSuite(DataExplorerTest.DataExplorerTest, 'test'), … … 109 132 unittest.makeSuite(AboutBoxTest.AboutBoxTest, 'test'), 110 133 unittest.makeSuite(WelcomePanelTest.WelcomePanelTest, 'test'), 111 112 # Utilities 134 ) 135 return unittest.TestSuite(suites) 136 137 def utilitiesSuite(): 138 suites = ( 139 ## Utilities 113 140 unittest.makeSuite(TestUtilsTest.TestUtilsTest, 'test'), 114 141 unittest.makeSuite(SasviewLoggerTest.SasviewLoggerTest, 'test'), … … 122 149 unittest.makeSuite(AddMultEditorTest.AddMultEditorTest, 'test'), 123 150 unittest.makeSuite(ReportDialogTest.ReportDialogTest, 'test'), 124 151 ) 152 return unittest.TestSuite(suites) 153 154 def calculatorsSuite(): 155 suites = ( 125 156 # Calculators 126 157 unittest.makeSuite(KiessigCalculatorTest.KiessigCalculatorTest, 'test'), … … 131 162 unittest.makeSuite(ResolutionCalculatorPanelTest.ResolutionCalculatorPanelTest, 'test'), 132 163 unittest.makeSuite(DataOperationUtilityTest.DataOperationUtilityTest, 'test'), 133 164 ) 165 return unittest.TestSuite(suites) 166 167 def fittingSuite(): 168 suites = ( 134 169 # Perspectives 135 170 # Fitting … … 143 178 unittest.makeSuite(ConstraintWidgetTest.ConstraintWidgetTest, 'test'), 144 179 unittest.makeSuite(ComplexConstraintTest.ComplexConstraintTest, 'test'), 145 180 ) 181 return unittest.TestSuite(suites) 182 183 def perspectivesSuite(): 184 suites = ( 146 185 # Invariant 147 186 unittest.makeSuite(InvariantPerspectiveTest.InvariantPerspectiveTest, 'test'), 148 187 # Inversion 149 unittest.makeSuite(InversionPerspectiveTest.InversionTest, 'test'),188 #unittest.makeSuite(InversionPerspectiveTest.InversionTest, 'test'), 150 189 ) 151 190 return unittest.TestSuite(suites) 152 191 153 192 if __name__ == "__main__": 154 unittest.main(defaultTest="suite") 155 193 194 user_suites = ALL_SUITES 195 # Check if user asked for specific suites: 196 if len(sys.argv) > 1: 197 user_suites = sys.argv[1:] 198 199 runner = unittest.TextTestRunner(verbosity=VERBOSITY) 200 for suite in user_suites: 201 # create the suite object from name 202 try: 203 suite_instance = globals()[suite]() 204 results = runner.run(suite_instance) 205 except KeyError: 206 print("ERROR: Incorrect suite name: %s " % suite) 207 pass -
src/sas/qtgui/MainWindow/UnitTesting/GuiManagerTest.py
r725d9c06 r144fe21 251 251 252 252 # Check the initial state 253 self.assertFalse(self.manager._workspace.toolBar.isVisible()) 254 self.assertEqual('Show Toolbar', self.manager._workspace.actionHide_Toolbar.text()) 255 256 # Invoke action 257 self.manager.actionHide_Toolbar() 258 259 # Assure changes propagated correctly 253 260 self.assertTrue(self.manager._workspace.toolBar.isVisible()) 254 261 self.assertEqual('Hide Toolbar', self.manager._workspace.actionHide_Toolbar.text()) 255 262 256 # Invoke action263 # Revert 257 264 self.manager.actionHide_Toolbar() 258 265 259 # Assure changes propagated correctly266 # Assure the original values are back 260 267 self.assertFalse(self.manager._workspace.toolBar.isVisible()) 261 268 self.assertEqual('Show Toolbar', self.manager._workspace.actionHide_Toolbar.text()) 262 263 # Revert264 self.manager.actionHide_Toolbar()265 266 # Assure the original values are back267 self.assertTrue(self.manager._workspace.toolBar.isVisible())268 self.assertEqual('Hide Toolbar', self.manager._workspace.actionHide_Toolbar.text())269 269 270 270 -
src/sas/qtgui/Perspectives/Fitting/UnitTesting/FittingPerspectiveTest.py
r6548a01 r144fe21 44 44 self.assertEqual(len(self.widget.tabs), 1) 45 45 self.assertEqual(self.widget.maxIndex, 2) 46 self.assertEqual(self.widget.getTabName(), "FitPage 1")46 self.assertEqual(self.widget.getTabName(), "FitPage2") 47 47 48 48 def testAddTab(self): … … 52 52 self.widget.addFit(None) 53 53 self.assertEqual(len(self.widget.tabs), 2) 54 self.assertEqual(self.widget.getTabName(), "FitPage 2")54 self.assertEqual(self.widget.getTabName(), "FitPage3") 55 55 self.assertEqual(self.widget.maxIndex, 3) 56 56 # Add an empty batch tab 57 57 self.widget.addFit(None, is_batch=True) 58 58 self.assertEqual(len(self.widget.tabs), 3) 59 self.assertEqual(self.widget.getTabName(2), "BatchPage 3")59 self.assertEqual(self.widget.getTabName(2), "BatchPage4") 60 60 self.assertEqual(self.widget.maxIndex, 4) 61 61 … … 69 69 ''' Remove data from last tab''' 70 70 self.assertEqual(len(self.widget.tabs), 1) 71 self.assertEqual(self.widget.getTabName(), "FitPage 1")71 self.assertEqual(self.widget.getTabName(), "FitPage2") 72 72 self.assertEqual(self.widget.maxIndex, 2) 73 73 … … 77 77 # see that the tab didn't disappear, just changed the name/id 78 78 self.assertEqual(len(self.widget.tabs), 1) 79 self.assertEqual(self.widget.getTabName(), "FitPage 2")79 self.assertEqual(self.widget.getTabName(), "FitPage3") 80 80 self.assertEqual(self.widget.maxIndex, 3) 81 81 … … 101 101 self.assertEqual(len(self.widget.tabs), 1) 102 102 self.assertEqual(self.widget.maxIndex, 3) 103 self.assertEqual(self.widget.getTabName(), "FitPage 2")103 self.assertEqual(self.widget.getTabName(), "FitPage3") 104 104 105 105 # Attemtp to remove the last tab … … 108 108 self.assertEqual(len(self.widget.tabs), 1) 109 109 self.assertEqual(self.widget.maxIndex, 4) 110 self.assertEqual(self.widget.getTabName(), "FitPage 3")110 self.assertEqual(self.widget.getTabName(), "FitPage4") 111 111 112 112 def testAllowBatch(self): -
src/sas/qtgui/Perspectives/Fitting/UnitTesting/FittingWidgetTest.py
re793f62 r144fe21 411 411 category_index = self.widget.cbCategory.findText("Cylinder") 412 412 self.widget.cbCategory.setCurrentIndex(category_index) 413 model_index = self.widget.cbModel.findText("barbell") 414 self.widget.cbModel.setCurrentIndex(model_index) 413 415 414 416 # click on a poly parameter checkbox 415 417 index = self.widget._poly_model.index(0,0) 418 419 #self.widget.show() 420 #QtWidgets.QApplication(sys.argv).exec_() 421 422 416 423 # Set the checbox 417 424 self.widget._poly_model.item(0,0).setCheckState(2) … … 455 462 category_index = self.widget.cbCategory.findText("Cylinder") 456 463 self.widget.cbCategory.setCurrentIndex(category_index) 464 model_index = self.widget.cbModel.findText("barbell") 465 self.widget.cbModel.setCurrentIndex(model_index) 457 466 458 467 # call method with default settings … … 494 503 category_index = self.widget.cbCategory.findText("Cylinder") 495 504 self.widget.cbCategory.setCurrentIndex(category_index) 505 model_index = self.widget.cbModel.findText("barbell") 506 self.widget.cbModel.setCurrentIndex(model_index) 496 507 497 508 self.widget.onPolyComboIndexChange('array', 0) … … 524 535 525 536 # Check the magnetic model 526 self.assertEqual(self.widget._magnet_model.rowCount(), 9)537 self.assertEqual(self.widget._magnet_model.rowCount(), 12) 527 538 self.assertEqual(self.widget._magnet_model.columnCount(), 5) 528 539 … … 535 546 536 547 header_tooltips = ['Select parameter for fitting', 537 538 539 540 548 'Enter parameter value', 549 'Enter minimum value for parameter', 550 'Enter maximum value for parameter', 551 'Unit of the parameter'] 541 552 for column, tooltip in enumerate(header_tooltips): 542 553 self.assertEqual(self.widget._magnet_model.headerData(column, … … 942 953 self.assertTrue(fp.data_is_loaded) 943 954 self.assertEqual(fp.current_category, "Sphere") 944 self.assertEqual(fp.current_model, " adsorbed_layer")955 self.assertEqual(fp.current_model, "binary_hard_sphere") 945 956 self.assertListEqual(fp.parameters_to_fit, ['scale']) 946 957 -
src/sas/qtgui/Perspectives/Invariant/UnitTesting/InvariantPerspectiveTest.py
r80468f6 r144fe21 23 23 import sas.qtgui.Utilities.GuiUtils as GuiUtils 24 24 25 #if not QtWidgets.QApplication.instance():26 app = QtWidgets.QApplication(sys.argv)25 if not QtWidgets.QApplication.instance(): 26 app = QtWidgets.QApplication(sys.argv) 27 27 28 28 BG_COLOR_ERR = 'background-color: rgb(244, 170, 164);' -
src/sas/qtgui/Perspectives/Inversion/UnitTesting/InversionPerspectiveTest.py
- Property mode changed from 100755 to 100644
r72ecbdf2 r144fe21 12 12 import sas.qtgui.Utilities.GuiUtils as GuiUtils 13 13 14 #if not QtWidgets.QApplication.instance():15 app = QtWidgets.QApplication(sys.argv)14 if not QtWidgets.QApplication.instance(): 15 app = QtWidgets.QApplication(sys.argv) 16 16 17 17 … … 19 19 HELP_DIRECTORY_LOCATION = "html" 20 20 communicate = Communicate() 21 22 21 def communicator(self): 23 22 return self.communicate … … 29 28 def setUp(self): 30 29 """ Create the InversionWindow """ 31 self.widget = InversionWindow(dummy_manager()) 30 31 self.widget = InversionWindow(parent=dummy_manager()) 32 self.widget._parent = QtWidgets.QMainWindow() 33 self.widget.showBatchOutput = MagicMock() 34 self.widget.startThread = MagicMock() 35 self.widget.startThreadAll = MagicMock() 32 36 self.widget.show() 37 33 38 self.fakeData1 = GuiUtils.HashableStandardItem("A") 34 39 self.fakeData2 = GuiUtils.HashableStandardItem("B") … … 96 101 self.assertTrue(self.widget.allowBatch()) 97 102 self.assertFalse(self.widget.isBatch) 98 self.assertIsNone(self.widget.batchResultsWindow)99 103 self.assertFalse(self.widget.calculateAllButton.isEnabled()) 100 104 self.assertEqual(len(self.widget.batchResults), 0) 101 105 self.assertEqual(len(self.widget.batchComplete), 0) 102 106 self.widget.closeBatchResults() 103 self.assertIsNone(self.widget.batchResultsWindow)104 107 105 108 def zeroDataSetState(self): … … 206 209 self.assertTrue(self.widget.isMinimized()) 207 210 self.assertIsNone(self.widget.dmaxWindow) 208 self.assertIsNone(self.widget.batchResultsWindow)209 211 self.widget.setClosable(False) 210 212 self.assertFalse(self.widget.isClosable()) -
src/sas/qtgui/Plotting/UnitTesting/Plotter2DTest.py
r53c771e r144fe21 148 148 self.assertEqual(len(actions), 7) 149 149 150 # Trigger Save Image and make sure the method is called151 self.assertEqual(actions[0].text(), "Save Image")152 self.plotter.toolbar.save_figure = MagicMock()153 actions[0].trigger()154 self.assertTrue(self.plotter.toolbar.save_figure.called)155 156 150 # Trigger Print Image and make sure the method is called 157 151 self.assertEqual(actions[1].text(), "Print Image") -
src/sas/qtgui/Plotting/UnitTesting/PlotterBaseTest.py
rdd150ef r144fe21 47 47 self.assertIsInstance(self.plotter, QtWidgets.QWidget) 48 48 self.assertIsInstance(self.plotter.canvas, FigureCanvas) 49 self.assertIsInstance(self.plotter.toolbar, NavigationToolbar)50 49 self.assertIsInstance(self.plotter.properties, ScaleProperties) 51 50 … … 84 83 self.plotter.closeEvent(None) 85 84 self.assertTrue(PlotHelper.deletePlot.called) 86 87 def testOnImageSave(self):88 ''' test the workspace save '''89 self.plotter.toolbar.save_figure = MagicMock()90 self.plotter.onImageSave()91 self.assertTrue(self.plotter.toolbar.save_figure.called)92 85 93 86 def testOnImagePrint(self): … … 132 125 actions = self.plotter.contextMenu.actions() 133 126 self.assertEqual(len(actions), 4) 134 135 # Trigger Save Image and make sure the method is called136 self.assertEqual(actions[0].text(), "Save Image")137 self.plotter.toolbar.save_figure = MagicMock()138 actions[0].trigger()139 self.assertTrue(self.plotter.toolbar.save_figure.called)140 127 141 128 # Trigger Print Image and make sure the method is called -
src/sas/qtgui/Plotting/UnitTesting/PlotterTest.py
r63319b0 r144fe21 104 104 actions = self.plotter.contextMenu.actions() 105 105 self.assertEqual(len(actions), 7) 106 107 # Trigger Save Image and make sure the method is called108 self.assertEqual(actions[0].text(), "Save Image")109 self.plotter.toolbar.save_figure = MagicMock()110 actions[0].trigger()111 self.assertTrue(self.plotter.toolbar.save_figure.called)112 106 113 107 # Trigger Print Image and make sure the method is called -
src/sas/qtgui/Utilities/UnitTesting/ReportDialogTest.py
- Property mode changed from 100755 to 100644
r57be490 r144fe21 10 10 11 11 from PyQt5 import QtWidgets, QtPrintSupport 12 from PyQt5.QtTest import QTest 12 13 13 14 # set up import paths … … 40 41 def tearDown(self): 41 42 '''Destroy the GUI''' 42 #self.widget.close()43 43 self.widget = None 44 44 … … 52 52 document = self.widget.txtBrowser.document() 53 53 document.print = MagicMock() 54 54 self.setUp() 55 55 # test rejected dialog 56 56 QtPrintSupport.QPrintDialog.exec_ = MagicMock(return_value=QtWidgets.QDialog.Rejected) … … 65 65 QtPrintSupport.QPrintDialog.exec_ = MagicMock(return_value=QtWidgets.QDialog.Accepted) 66 66 67 # This potentially spawns a "file to write to" dialog, if say, a PrintToPDF is the 68 # default printer 69 67 70 # invoke the method 68 self.widget.onPrint()71 #self.widget.onPrint() 69 72 70 73 # Assure printing was done 71 self.assertTrue(document.print.called)74 #self.assertTrue(document.print.called) 72 75 73 76 … … 78 81 os.startfile = MagicMock() 79 82 os.system = MagicMock() 83 self.setUp() 80 84 81 85 # conversion failed … … 92 96 93 97 # conversion succeeded 98 temp_html2pdf = self.widget.HTML2PDF 94 99 self.widget.HTML2PDF = MagicMock(return_value=0) 95 100 … … 121 126 self.assertTrue(self.widget.onHTMLSave) 122 127 128 self.widget.HTML2PDF = temp_html2pdf 129 130 123 131 def testGetPictures(self): 124 132 ''' Saving MPL charts and returning filenames ''' … … 131 139 pisa.CreatePDF = MagicMock(return_value=pisa_dummy()) 132 140 open = MagicMock(return_value="y") 141 self.setUp() 142 143 QTest.qWait(100) 133 144 134 145 data = self.widget.txtBrowser.toHtml()
Note: See TracChangeset
for help on using the changeset viewer.