Index: src/sas/qtgui/MainWindow/DataExplorer.py
===================================================================
--- src/sas/qtgui/MainWindow/DataExplorer.py	(revision b0b09b9740526b0b3838f642e43599409dfd8772)
+++ src/sas/qtgui/MainWindow/DataExplorer.py	(revision 99ea1b0a8c79c7cca1feb2e3bcae293656ef8ca8)
@@ -175,4 +175,5 @@
         load_thread = threads.deferToThread(self.readData, url)
         load_thread.addCallback(self.loadComplete)
+        load_thread.addErrback(self.loadFailed)
 
     def loadFile(self, event=None):
@@ -221,4 +222,11 @@
             load_thread = threads.deferToThread(self.readProject, filename)
             load_thread.addCallback(self.readProjectComplete)
+            load_thread.addErrback(self.readProjectFailed)
+
+    def readProjectFailed(self, reason):
+        """
+        """
+        print("readProjectFailed FAILED: ", reason)
+        pass
 
     def readProject(self, filename):
@@ -614,7 +622,4 @@
             return
 
-        #if isinstance(paths, QtCore.QStringList):
-        #    paths = [str(f) for f in paths]
-
         if not isinstance(paths, list):
             paths = [paths]
@@ -992,4 +997,8 @@
         self.manager.add_data(data_list=output_data)
 
+    def loadErrback(self, reason):
+        print("File Load Failed with:\n", reason)
+        pass
+
     def updateModel(self, data, p_file):
         """
Index: src/sas/qtgui/MainWindow/UnitTesting/AboutBoxTest.py
===================================================================
--- src/sas/qtgui/MainWindow/UnitTesting/AboutBoxTest.py	(revision 464cd0702ca4f47ed61d237d9acecd5975d8abac)
+++ src/sas/qtgui/MainWindow/UnitTesting/AboutBoxTest.py	(revision 99ea1b0a8c79c7cca1feb2e3bcae293656ef8ca8)
@@ -6,5 +6,5 @@
 from PyQt4.QtTest import QTest
 from PyQt4 import QtCore
-from mock import MagicMock
+from unittest.mock import MagicMock
 
 # set up import paths
Index: src/sas/qtgui/MainWindow/UnitTesting/DataExplorerTest.py
===================================================================
--- src/sas/qtgui/MainWindow/UnitTesting/DataExplorerTest.py	(revision 88e1f57e340b062a07d1e5693c8b7b8a4edc4b32)
+++ src/sas/qtgui/MainWindow/UnitTesting/DataExplorerTest.py	(revision 99ea1b0a8c79c7cca1feb2e3bcae293656ef8ca8)
@@ -5,6 +5,6 @@
 from PyQt4.QtTest import QTest
 from PyQt4.QtCore import *
-from mock import MagicMock
-from mock import patch
+from unittest.mock import MagicMock
+from unittest.mock import patch
 from mpl_toolkits.mplot3d import Axes3D
 
@@ -157,5 +157,5 @@
 
         expected_list = [0, 0, 33, 66, -1]
-        spied_list = [spy_progress_bar_update.called()[i]['args'][0] for i in xrange(5)]
+        spied_list = [spy_progress_bar_update.called()[i]['args'][0] for i in range(5)]
         self.assertEqual(expected_list, spied_list)
         
@@ -173,7 +173,4 @@
         filename = ["cyl_400_20.txt", "cyl_400_20.txt", "P123_D2O_10_percent.dat"]
         self.form.readData(filename)
-
-        self.form.show()
-        app.exec_()
 
         # Assure the model contains three items
@@ -329,4 +326,7 @@
         self.form.cbSelect.setCurrentIndex(1)
 
+        self.form.show()
+        app.exec_()
+
         # Test the current selection
         item1D = self.form.model.item(0)
@@ -507,5 +507,5 @@
         # We don't know the data ID, so need to iterate over dict
         data_dict = spy_data_received.called()[0]['args'][0]
-        for data_key, data_value in data_dict.iteritems():
+        for data_key, data_value in data_dict.items():
             self.assertIsInstance(data_value, Data1D)
 
Index: src/sas/qtgui/MainWindow/UnitTesting/GuiManagerTest.py
===================================================================
--- src/sas/qtgui/MainWindow/UnitTesting/GuiManagerTest.py	(revision 8222f171ca8747f44ec53b2088e4cf8903026e84)
+++ src/sas/qtgui/MainWindow/UnitTesting/GuiManagerTest.py	(revision 99ea1b0a8c79c7cca1feb2e3bcae293656ef8ca8)
@@ -9,5 +9,5 @@
 from PyQt4.QtCore import *
 from PyQt4.QtWebKit import *
-from mock import MagicMock
+from unittest.mock import MagicMock
 
 # set up import paths
@@ -74,5 +74,5 @@
         # We are in the MainWindow scope, so simple 'print' will work
         message = "from stdout"
-        print message
+        print(message)
         self.assertIn(message, self.manager.logDockWidget.widget().toPlainText())
 
@@ -162,5 +162,5 @@
         """
         # 1. version = 0.0.0
-        version_info = {u'version' : u'0.0.0'}
+        version_info = {'version' : '0.0.0'}
         spy_status_update = QtSignalSpy(self.manager, self.manager.communicate.statusBarUpdateSignal)
 
@@ -172,5 +172,5 @@
 
         # 2. version < LocalConfig.__version__
-        version_info = {u'version' : u'0.0.1'}
+        version_info = {'version' : '0.0.1'}
         spy_status_update = QtSignalSpy(self.manager, self.manager.communicate.statusBarUpdateSignal)
 
@@ -182,5 +182,5 @@
 
         # 3. version > LocalConfig.__version__
-        version_info = {u'version' : u'999.0.0'}
+        version_info = {'version' : '999.0.0'}
         spy_status_update = QtSignalSpy(self.manager, self.manager.communicate.statusBarUpdateSignal)
         webbrowser.open = MagicMock()
Index: src/sas/qtgui/MainWindow/UnitTesting/MainWindowTest.py
===================================================================
--- src/sas/qtgui/MainWindow/UnitTesting/MainWindowTest.py	(revision 464cd0702ca4f47ed61d237d9acecd5975d8abac)
+++ src/sas/qtgui/MainWindow/UnitTesting/MainWindowTest.py	(revision 99ea1b0a8c79c7cca1feb2e3bcae293656ef8ca8)
@@ -5,5 +5,5 @@
 from PyQt4 import QtTest
 from PyQt4 import QtCore
-from mock import MagicMock
+from unittest.mock import MagicMock
 
 # set up import paths
