Index: src/sas/qtgui/Perspectives/Fitting/UnitTesting/FittingPerspectiveTest.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/UnitTesting/FittingPerspectiveTest.py	(revision 53c771ed573b1c8716ecc969b54a1d617a4cb931)
+++ src/sas/qtgui/Perspectives/Fitting/UnitTesting/FittingPerspectiveTest.py	(revision 676f1378496edab35bd11ed8e0ce2614c0db17b6)
@@ -44,5 +44,6 @@
         self.assertEqual(len(self.widget.tabs), 1)
         self.assertEqual(self.widget.maxIndex, 1)
-        self.assertEqual(self.widget.tabName(), "FitPage1")
+        self.assertEqual(self.widget.maxCSIndex, 0)
+        self.assertEqual(self.widget.getTabName(), "FitPage1")
 
     def testAddTab(self):
@@ -52,16 +53,23 @@
         self.widget.addFit(None)
         self.assertEqual(len(self.widget.tabs), 2)
-        self.assertEqual(self.widget.tabName(), "FitPage2")
+        self.assertEqual(self.widget.getTabName(), "FitPage2")
         self.assertEqual(self.widget.maxIndex, 2)
         # Add an empty batch tab
         self.widget.addFit(None, is_batch=True)
         self.assertEqual(len(self.widget.tabs), 3)
-        self.assertEqual(self.widget.tabName(2), "BatchPage3")
+        self.assertEqual(self.widget.getTabName(2), "BatchPage3")
         self.assertEqual(self.widget.maxIndex, 3)
+
+    def testAddCSTab(self):
+        ''' Add a constraint/simult tab'''
+        self.widget.addConstraintTab()
+        self.assertEqual(len(self.widget.tabs), 2)
+        self.assertEqual(self.widget.getCSTabName(), "Const. & Simul. Fit1")
+        self.assertEqual(self.widget.maxCSIndex, 1)
 
     def testResetTab(self):
         ''' Remove data from last tab'''
         self.assertEqual(len(self.widget.tabs), 1)
-        self.assertEqual(self.widget.tabName(), "FitPage1")
+        self.assertEqual(self.widget.getTabName(), "FitPage1")
         self.assertEqual(self.widget.maxIndex, 1)
 
@@ -71,5 +79,5 @@
         # see that the tab didn't disappear, just changed the name/id
         self.assertEqual(len(self.widget.tabs), 1)
-        self.assertEqual(self.widget.tabName(), "FitPage2")
+        self.assertEqual(self.widget.getTabName(), "FitPage2")
         self.assertEqual(self.widget.maxIndex, 2)
 
@@ -95,5 +103,5 @@
         self.assertEqual(len(self.widget.tabs), 1)
         self.assertEqual(self.widget.maxIndex, 2)
-        self.assertEqual(self.widget.tabName(), "FitPage2")
+        self.assertEqual(self.widget.getTabName(), "FitPage2")
 
         # Attemtp to remove the last tab
@@ -102,5 +110,5 @@
         self.assertEqual(len(self.widget.tabs), 1)
         self.assertEqual(self.widget.maxIndex, 3)
-        self.assertEqual(self.widget.tabName(), "FitPage3")
+        self.assertEqual(self.widget.getTabName(), "FitPage3")
 
     def testAllowBatch(self):
Index: src/sas/qtgui/Perspectives/Fitting/UnitTesting/FittingWidgetTest.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/UnitTesting/FittingWidgetTest.py	(revision 53c771ed573b1c8716ecc969b54a1d617a4cb931)
+++ src/sas/qtgui/Perspectives/Fitting/UnitTesting/FittingWidgetTest.py	(revision 676f1378496edab35bd11ed8e0ce2614c0db17b6)
@@ -112,30 +112,29 @@
         fittingWindow =  self.widget
 
-        self.assertIsInstance(fittingWindow.lstMagnetic.itemDelegate(), QtGui.QStyledItemDelegate)
+        self.assertIsInstance(fittingWindow.lstMagnetic.itemDelegate(), QtWidgets.QStyledItemDelegate)
         #Test loading from json categories
         fittingWindow.SASModelToQModel("cylinder")
         mag_index = fittingWindow.lstMagnetic.model().index(0,0)
-        self.assertEqual(str(mag_index.data().toString()), "up:frac_i")
+        self.assertEqual(mag_index.data(), "up:frac_i")
         mag_index = fittingWindow.lstMagnetic.model().index(1,0)
-        self.assertEqual(str(mag_index.data().toString()), "up:frac_f")
+        self.assertEqual(mag_index.data(), "up:frac_f")
         mag_index = fittingWindow.lstMagnetic.model().index(2,0)
-        self.assertEqual(str(mag_index.data().toString()), "up:angle")
+        self.assertEqual(mag_index.data(), "up:angle")
         mag_index = fittingWindow.lstMagnetic.model().index(3,0)
-        self.assertEqual(str(mag_index.data().toString()), "M0:sld")
+        self.assertEqual(mag_index.data(), "M0:sld")
         mag_index = fittingWindow.lstMagnetic.model().index(4,0)
-        self.assertEqual(str(mag_index.data().toString()), "mtheta:sld")
+        self.assertEqual(mag_index.data(), "mtheta:sld")
         mag_index = fittingWindow.lstMagnetic.model().index(5,0)
-        self.assertEqual(str(mag_index.data().toString()), "mphi:sld")
+        self.assertEqual(mag_index.data(), "mphi:sld")
         mag_index = fittingWindow.lstMagnetic.model().index(6,0)
-        self.assertEqual(str(mag_index.data().toString()), "M0:sld_solvent")
+        self.assertEqual(mag_index.data(), "M0:sld_solvent")
         mag_index = fittingWindow.lstMagnetic.model().index(7,0)
-        self.assertEqual(str(mag_index.data().toString()), "mtheta:sld_solvent")
+        self.assertEqual(mag_index.data(), "mtheta:sld_solvent")
         mag_index = fittingWindow.lstMagnetic.model().index(8,0)
-        self.assertEqual(str(mag_index.data().toString()), "mphi:sld_solvent")
+        self.assertEqual(mag_index.data(), "mphi:sld_solvent")
 
         # test the delegate a bit
         delegate = fittingWindow.lstMagnetic.itemDelegate()
         self.assertEqual(delegate.editableParameters(), [1, 2, 3])
-        self.assertIsInstance(delegate.combo_updated, QtCore.pyqtBoundSignal)
 
     def testSelectStructureFactor(self):
