Changeset 53c771e in sasview for src/sas/qtgui/Perspectives/Fitting/UnitTesting/FittingWidgetTest.py
- Timestamp:
- Nov 9, 2017 6:45:20 AM (6 years ago)
- 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:
- dd150ef
- Parents:
- d6b8a1d
- git-author:
- Piotr Rozyczko <rozyczko@…> (11/08/17 07:22:45)
- git-committer:
- Piotr Rozyczko <rozyczko@…> (11/09/17 06:45:20)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/qtgui/Perspectives/Fitting/UnitTesting/FittingWidgetTest.py
r7fb471d r53c771e 2 2 import unittest 3 3 import time 4 5 from PyQt4 import QtGui 6 from PyQt4 import QtTest 7 from PyQt4 import QtCore 4 import logging 5 6 from PyQt5 import QtGui 7 from PyQt5 import QtWidgets 8 from PyQt5 import QtTest 9 from PyQt5 import QtCore 8 10 from unittest.mock import MagicMock 9 11 from twisted.internet import threads … … 20 22 from sas.qtgui.Plotting.PlotterData import Data2D 21 23 22 #if not QtGui.QApplication.instance():23 app = QtGui.QApplication(sys.argv)24 if not QtWidgets.QApplication.instance(): 25 app = QtWidgets.QApplication(sys.argv) 24 26 25 27 class dummy_manager(object): … … 41 43 def testDefaults(self): 42 44 """Test the GUI in its default state""" 43 self.assertIsInstance(self.widget, Qt Gui.QWidget)45 self.assertIsInstance(self.widget, QtWidgets.QWidget) 44 46 self.assertEqual(self.widget.windowTitle(), "Fitting") 45 self.assertEqual(self.widget.sizePolicy().Policy(), Qt Gui.QSizePolicy.Fixed)47 self.assertEqual(self.widget.sizePolicy().Policy(), QtWidgets.QSizePolicy.Fixed) 46 48 self.assertIsInstance(self.widget.lstParams.model(), QtGui.QStandardItemModel) 47 49 self.assertIsInstance(self.widget.lstPoly.model(), QtGui.QStandardItemModel) … … 89 91 fittingWindow = self.widget 90 92 91 self.assertIsInstance(fittingWindow.lstPoly.itemDelegate(), Qt Gui.QStyledItemDelegate)93 self.assertIsInstance(fittingWindow.lstPoly.itemDelegate(), QtWidgets.QStyledItemDelegate) 92 94 #Test loading from json categories 93 95 fittingWindow.SASModelToQModel("cylinder") … … 396 398 for row in range(self.widget._poly_model.rowCount()): 397 399 func_index = self.widget._poly_model.index(row, 6) 398 self.assertTrue(isinstance(self.widget.lstPoly.indexWidget(func_index), Qt Gui.QComboBox))400 self.assertTrue(isinstance(self.widget.lstPoly.indexWidget(func_index), QtWidgets.QComboBox)) 399 401 self.assertIn('Distribution of', self.widget._poly_model.item(row, 0).text()) 400 402 #self.widget.close() … … 462 464 # check values 463 465 self.assertEqual(self.widget.kernel_module.getParam('radius_bell.npts'), 35) 464 self.assert Equal(self.widget.kernel_module.getParam('radius_bell.nsigmas'), 1.70325)466 self.assertAlmostEqual(self.widget.kernel_module.getParam('radius_bell.nsigmas'), 1.70325, 5) 465 467 # Change the index 466 468 self.widget.onPolyComboIndexChange('lognormal', 0) … … 486 488 """ 487 489 filename = os.path.join("UnitTesting", "testdata_noexist.txt") 488 Qt Gui.QFileDialog.getOpenFileName = MagicMock(return_value=filename)490 QtWidgets.QFileDialog.getOpenFileName = MagicMock(return_value=(filename,'')) 489 491 self.widget.show() 490 492 # Change the category index so we have a model with polydisp … … 500 502 # good file 501 503 filename = os.path.join("UnitTesting", "testdata.txt") 502 Qt Gui.QFileDialog.getOpenFileName = MagicMock(return_value=filename)504 QtWidgets.QFileDialog.getOpenFileName = MagicMock(return_value=(filename,'')) 503 505 504 506 self.widget.onPolyComboIndexChange('array', 0) … … 567 569 last_row = self.widget._last_model_row 568 570 func_index = self.widget._model_model.index(last_row-1, 1) 569 self.assertIsInstance(self.widget.lstParams.indexWidget(func_index), Qt Gui.QComboBox)571 self.assertIsInstance(self.widget.lstParams.indexWidget(func_index), QtWidgets.QComboBox) 570 572 571 573 # Change the combo box index … … 653 655 self.assertEqual(spy.count(), 1) 654 656 655 def testOn Fit1D(self):656 """ 657 Test the threaded fitting call657 def testOnEmptyFit(self): 658 """ 659 Test a 1D/2D fit with no parameters 658 660 """ 659 661 # Set data … … 671 673 self.widget.parameters_to_fit = [] 672 674 673 with self.assertRaises(ValueError) as error: 674 self.widget.onFit() 675 self.assertEqual(str(error.exception), 'no fitting parameters') 675 logging.error = MagicMock() 676 677 self.widget.onFit() 678 self.assertTrue(logging.error.called_with('no fitting parameters')) 679 self.widget.close() 680 681 test_data = Data2D(image=[1.0, 2.0, 3.0], 682 err_image=[0.01, 0.02, 0.03], 683 qx_data=[0.1, 0.2, 0.3], 684 qy_data=[0.1, 0.2, 0.3], 685 xmin=0.1, xmax=0.3, ymin=0.1, ymax=0.3, 686 mask=[True, True, True]) 687 688 # Force same data into logic 689 item = QtGui.QStandardItem() 690 updateModelItem(item, [test_data], "test") 691 # Force same data into logic 692 self.widget.data = item 693 category_index = self.widget.cbCategory.findText("Sphere") 694 self.widget.cbCategory.setCurrentIndex(category_index) 695 696 self.widget.show() 697 698 # Test no fitting params 699 self.widget.parameters_to_fit = [] 700 701 logging.error = MagicMock() 702 703 self.widget.onFit() 704 self.assertTrue(logging.error.called_once()) 705 self.assertTrue(logging.error.called_with('no fitting parameters')) 706 self.widget.close() 707 708 709 def testOnFit1D(self): 710 """ 711 Test the threaded fitting call 712 """ 713 # Set data 714 test_data = Data1D(x=[1,2], y=[1,2]) 715 item = QtGui.QStandardItem() 716 updateModelItem(item, [test_data], "test") 717 # Force same data into logic 718 self.widget.data = item 719 category_index = self.widget.cbCategory.findText("Sphere") 720 self.widget.cbCategory.setCurrentIndex(category_index) 721 722 self.widget.show() 676 723 677 724 # Assing fitting params … … 694 741 # Signal pushed up 695 742 self.assertEqual(update_spy.count(), 1) 743 744 self.widget.close() 696 745 697 746 def testOnFit2D(self): … … 717 766 self.widget.show() 718 767 719 # Test no fitting params720 self.widget.parameters_to_fit = []721 722 with self.assertRaises(ValueError) as error:723 self.widget.onFit()724 self.assertEqual(str(error.exception), 'no fitting parameters')725 726 768 # Assing fitting params 727 769 self.widget.parameters_to_fit = ['scale'] … … 744 786 self.assertEqual(update_spy.count(), 1) 745 787 746 def testOnHelp(self): 788 # test disabled until pyqt5 deals with html properly 789 def notestOnHelp(self): 747 790 """ 748 791 Test various help pages shown in this widget … … 981 1024 982 1025 # check that range of variation for this parameter has NOT been changed 983 print(self.widget.kernel_module.details[name_modified_param])984 1026 self.assertNotIn(new_value, self.widget.kernel_module.details[name_modified_param] ) 985 1027
Note: See TracChangeset
for help on using the changeset viewer.