From f60ffd1be759c1a33d58b010d7cfe32de90d76df Mon Sep 17 00:00:00 2001
From: Anthony Lim <anthony.lim@stfc.ac.uk>
Date: Tue, 26 Jun 2018 12:57:12 +0100
Subject: [PATCH] refs #22399 fixed failing muon FDA  failing test

---
 scripts/Muon/GUI/Common/mock_widget.py        | 11 ++++++++
 .../FrequencyDomainAnalysis/FFT/fft_widget.py |  6 ++---
 .../MaxEnt/maxent_widget.py                   |  6 ++---
 .../Transform/transform_widget.py             |  3 +++
 .../transform_selection_widget.py             |  4 +--
 scripts/test/Muon/CMakeLists.txt              |  2 +-
 ...senter_test.py => transformWidget_test.py} | 25 +++++++++++--------
 7 files changed, 38 insertions(+), 19 deletions(-)
 create mode 100644 scripts/Muon/GUI/Common/mock_widget.py
 rename scripts/test/Muon/{transformPresenter_test.py => transformWidget_test.py} (67%)

diff --git a/scripts/Muon/GUI/Common/mock_widget.py b/scripts/Muon/GUI/Common/mock_widget.py
new file mode 100644
index 00000000000..bfdcd0c4f44
--- /dev/null
+++ b/scripts/Muon/GUI/Common/mock_widget.py
@@ -0,0 +1,11 @@
+
+import PyQt4.QtGui as QtGui
+
+
+def mockQapp():
+    qapp = QtGui.QApplication.instance()
+    if qapp is None:
+       return  QtGui.QApplication([''])
+    else:
+       return qapp
+ 
diff --git a/scripts/Muon/GUI/FrequencyDomainAnalysis/FFT/fft_widget.py b/scripts/Muon/GUI/FrequencyDomainAnalysis/FFT/fft_widget.py
index 12aa3890cdc..ac6a717838f 100644
--- a/scripts/Muon/GUI/FrequencyDomainAnalysis/FFT/fft_widget.py
+++ b/scripts/Muon/GUI/FrequencyDomainAnalysis/FFT/fft_widget.py
@@ -16,15 +16,15 @@ class FFTWidget(QtGui.QWidget):
         fft = FFTModel()
         model = FFTWrapper(fft)
 
-        self.pres = FFTPresenter(view=view, alg=model, load=load)
+        self.presenter = FFTPresenter(view=view, alg=model, load=load)
 
     @property
     def presenter(self):
-        return self.pres
+        return self.presenter
 
     @property
     def widget(self):
         return self.presenter.widget
 
     def closeEvent(self, event):
-        self.pres.cancel()
+        self.presenter.cancel()
diff --git a/scripts/Muon/GUI/FrequencyDomainAnalysis/MaxEnt/maxent_widget.py b/scripts/Muon/GUI/FrequencyDomainAnalysis/MaxEnt/maxent_widget.py
index 42473e1904d..5554896f520 100644
--- a/scripts/Muon/GUI/FrequencyDomainAnalysis/MaxEnt/maxent_widget.py
+++ b/scripts/Muon/GUI/FrequencyDomainAnalysis/MaxEnt/maxent_widget.py
@@ -15,15 +15,15 @@ class MaxEntWidget(QtGui.QWidget):
 
         maxEnt = MaxEntModel()
         model = MaxEntWrapper(maxEnt)
-        self.pres = MaxEntPresenter(view, model, load)
+        self.presenter = MaxEntPresenter(view, model, load)
 
     @property
     def presenter(self):
-        return self.pres
+        return self.presenter
 
     @property
     def widget(self):
         return self.presenter.widget
 
     def closeEvent(self, event):
-        self.pres.cancel()
+        self.presenter.cancel()
diff --git a/scripts/Muon/GUI/FrequencyDomainAnalysis/Transform/transform_widget.py b/scripts/Muon/GUI/FrequencyDomainAnalysis/Transform/transform_widget.py
index ee2547e8673..c2a06277d11 100644
--- a/scripts/Muon/GUI/FrequencyDomainAnalysis/Transform/transform_widget.py
+++ b/scripts/Muon/GUI/FrequencyDomainAnalysis/Transform/transform_widget.py
@@ -26,6 +26,9 @@ class TransformWidget(QtGui.QWidget):
     def widget(self):
         return self.view
 
+    def mockWidget(self, mockView):
+        self.view = mockView
+
     def closeEvent(self,event):
         self.selector.closeEvent(event)
         self.fft.closeEvent(event)
diff --git a/scripts/Muon/GUI/FrequencyDomainAnalysis/TransformSelection/transform_selection_widget.py b/scripts/Muon/GUI/FrequencyDomainAnalysis/TransformSelection/transform_selection_widget.py
index 6c86d4174fc..02d0651c51a 100644
--- a/scripts/Muon/GUI/FrequencyDomainAnalysis/TransformSelection/transform_selection_widget.py
+++ b/scripts/Muon/GUI/FrequencyDomainAnalysis/TransformSelection/transform_selection_widget.py
@@ -11,7 +11,7 @@ class TransformSelectionWidget(QtGui.QWidget):
     def __init__(self, parent=None):
         super(TransformSelectionWidget, self).__init__(parent)
         view = TransformSelectionView(parent)
-        self.pres = TransformSelectionPresenter(view)
+        self.presenter = TransformSelectionPresenter(view)
 
     def setSelectionConnection(self, slot):
         view = self.widget
@@ -19,7 +19,7 @@ class TransformSelectionWidget(QtGui.QWidget):
 
     @property
     def presenter(self):
-        return self.pres
+        return self.presenter
 
     @property
     def widget(self):
diff --git a/scripts/test/Muon/CMakeLists.txt b/scripts/test/Muon/CMakeLists.txt
index 5eb15b0b9ea..cf8bd05406a 100644
--- a/scripts/test/Muon/CMakeLists.txt
+++ b/scripts/test/Muon/CMakeLists.txt
@@ -7,7 +7,7 @@ set ( TEST_PY_FILES
    FFTModel_test.py
    MaxEntPresenter_test.py
    MaxEntModel_test.py
-   transformPresenter_test.py
+   transformWidget_test.py
 )
 
 check_tests_valid ( ${CMAKE_CURRENT_SOURCE_DIR} ${TEST_PY_FILES} )
diff --git a/scripts/test/Muon/transformPresenter_test.py b/scripts/test/Muon/transformWidget_test.py
similarity index 67%
rename from scripts/test/Muon/transformPresenter_test.py
rename to scripts/test/Muon/transformWidget_test.py
index a27fc922e26..94c78456a0b 100644
--- a/scripts/test/Muon/transformPresenter_test.py
+++ b/scripts/test/Muon/transformWidget_test.py
@@ -1,11 +1,14 @@
 import sys
 
+from  Muon.GUI.Common import mock_widget
 from  Muon.GUI.Common import load_utils
 from  Muon.GUI.FrequencyDomainAnalysis.FFT import fft_presenter
-from  Muon.GUI.FrequencyDomainAnalysis.Transform import transform_presenter
+from  Muon.GUI.FrequencyDomainAnalysis.Transform import transform_widget
 from  Muon.GUI.FrequencyDomainAnalysis.Transform import transform_view
 from  Muon.GUI.FrequencyDomainAnalysis.TransformSelection import transform_selection_view
 from  Muon.GUI.FrequencyDomainAnalysis.MaxEnt import maxent_presenter
+
+
 # need to update this
 import unittest
 if sys.version_info.major == 3:
@@ -13,12 +16,16 @@ if sys.version_info.major == 3:
 else:
     import mock
 
-
 class FFTTransformTest(unittest.TestCase):
     def setUp(self):
-        load_utils.LoadUtils=mock.Mock()
-        fft_presenter.FFTPresenter=mock.Mock()
-        maxent_presenter.MaxEntPresenter=mock.Mock()
+        self._qapp = mock_widget.mockQapp()
+        self.load=  mock.create_autospec( load_utils.LoadUtils,spec_set=True)
+        self.fft=   mock.create_autospec( fft_presenter.FFTPresenter,spec_Set=True)
+        self.maxent=mock.create_autospec( maxent_presenter.MaxEntPresenter,spec_set=True)
+
+        # create widget
+        self.widget=transform_widget.TransformWidget(self.load)
+        # create the view
         self.view=mock.create_autospec(transform_view.TransformView,spec_set=False)
         self.view.getView=mock.Mock()
         self.view.getMethods=mock.Mock(return_value=["FFT","MaxEnt"])
@@ -26,13 +33,11 @@ class FFTTransformTest(unittest.TestCase):
         self.view.show=mock.Mock()
         self.view.selection=mock.create_autospec(transform_selection_view.TransformSelectionView,spec_set=True)
         self.view.selection.changeMethodSignal=mock.Mock()
-        self.model=mock.create_autospec(model_constructor.ModelConstructor)
-        self.model.getModel=mock.Mock()
-        #set presenter
-        self.presenter=transform_presenter.TransformPresenter(self.view,self.model)
+        # set the mocked view to the widget
+        self.widget.mockWidget(self.view)  
 
     def test_changeDisplay(self):
-        self.presenter.updateDisplay(1)
+        self.widget.updateDisplay(1)
         assert(self.view.hideAll.call_count==1)
         assert(self.view.show.call_count==1)
 
-- 
GitLab