From 5e9cfcd68a3bcee6a72149c8cdda7155d78ba553 Mon Sep 17 00:00:00 2001
From: Conor Finn <conor.finn@stfc.ac.uk>
Date: Thu, 23 Jan 2020 15:38:17 +0000
Subject: [PATCH] RE #27659 Make full calib integrate with model

---
 .../gui/engineering_diffraction/settings/settings_view.py   | 3 ---
 .../gui/engineering_diffraction/tabs/calibration/model.py   | 4 ++--
 .../tabs/calibration/test/test_calib_model.py               | 6 ++++--
 .../engineering_diffraction/tabs/common/path_handling.py    | 4 ++--
 4 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/scripts/Engineering/gui/engineering_diffraction/settings/settings_view.py b/scripts/Engineering/gui/engineering_diffraction/settings/settings_view.py
index 3d94d776b52..834e4cca0fc 100644
--- a/scripts/Engineering/gui/engineering_diffraction/settings/settings_view.py
+++ b/scripts/Engineering/gui/engineering_diffraction/settings/settings_view.py
@@ -25,9 +25,6 @@ class SettingsView(QtWidgets.QDialog, Ui_settings):
 
         self.finder_fullCalib.setLabelText("Full Calibration")
         self.finder_fullCalib.isForRunFiles(False)
-        # TODO: Once it becomes possible to load the .csv containing the full calibration into mantid,
-        #  this can be used. Until then, this option is hidden from the user.
-        self.finder_fullCalib.hide()
 
     # ===============
     # Slot Connectors
diff --git a/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/model.py b/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/model.py
index fd3ee96f23b..929639cbfd3 100644
--- a/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/model.py
+++ b/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/model.py
@@ -14,7 +14,7 @@ import matplotlib.pyplot as plt
 from mantid.api import AnalysisDataService as Ads
 from mantid.kernel import logger
 from mantid.simpleapi import EnggCalibrate, DeleteWorkspace, CloneWorkspace, \
-    CreateWorkspace, AppendSpectra, CreateEmptyTableWorkspace
+    CreateWorkspace, AppendSpectra, CreateEmptyTableWorkspace, LoadAscii
 from mantidqt.plotting.functions import plot
 from Engineering.EnggUtils import write_ENGINX_GSAS_iparam_file
 from Engineering.gui.engineering_diffraction.tabs.common import vanadium_corrections
@@ -55,7 +55,7 @@ class CalibrationModel(object):
         full_calib_path = get_setting(path_handling.INTERFACES_SETTINGS_GROUP,
                                       path_handling.ENGINEERING_PREFIX, "full_calibration")
         if full_calib_path is not None and path.exists(full_calib_path):
-            full_calib = path_handling.load_workspace(full_calib_path)
+            full_calib = LoadAscii(full_calib_path, OutputWorkspace="det_pos", Separator="Tab")
             output = self.run_calibration(sample_workspace,
                                           van_integration,
                                           van_curves,
diff --git a/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/test/test_calib_model.py b/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/test/test_calib_model.py
index 87fc73d965c..d82d2152b93 100644
--- a/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/test/test_calib_model.py
+++ b/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/test/test_calib_model.py
@@ -58,22 +58,24 @@ class CalibrationModelTest(unittest.TestCase):
     @patch(file_path + '.get_setting')
     @patch(class_path + '.update_calibration_params_table')
     @patch(class_path + '.create_output_files')
+    @patch(file_path + '.LoadAscii')
     @patch(file_path + ".path_handling.load_workspace")
     @patch(class_path + '.run_calibration')
     @patch(file_path + '.vanadium_corrections.fetch_correction_workspaces')
-    def test_having_full_calib_set_uses_file(self, van_corr, calibrate_alg, load_workspace,
+    def test_having_full_calib_set_uses_file(self, van_corr, calibrate_alg, load_workspace, load_ascii,
                                              output_files, update_table, setting, path):
         path.return_value = True
         setting.return_value = "mocked/out/path"
         van_corr.return_value = ("mocked_integration", "mocked_curves")
         load_workspace.return_value = "mocked_workspace"
+        load_ascii.return_value = "mocked_det_pos"
         self.model.create_new_calibration(VANADIUM_NUMBER, CERIUM_NUMBER, False, "ENGINX")
         calibrate_alg.assert_called_with("mocked_workspace",
                                          "mocked_integration",
                                          "mocked_curves",
                                          None,
                                          None,
-                                         full_calib_ws="mocked_workspace")
+                                         full_calib_ws="mocked_det_pos")
 
     @patch(class_path + '.update_calibration_params_table')
     @patch(class_path + '.create_output_files')
diff --git a/scripts/Engineering/gui/engineering_diffraction/tabs/common/path_handling.py b/scripts/Engineering/gui/engineering_diffraction/tabs/common/path_handling.py
index ca37e6d9d6e..b90d770bfdb 100644
--- a/scripts/Engineering/gui/engineering_diffraction/tabs/common/path_handling.py
+++ b/scripts/Engineering/gui/engineering_diffraction/tabs/common/path_handling.py
@@ -25,9 +25,9 @@ def get_output_path():
     return location if location is not None else ""
 
 
-def load_workspace(file_path):
+def load_workspace(file_path, **kwargs):
     try:
-        return Load(Filename=file_path, OutputWorkspace="engggui_calibration_sample_ws")
+        return Load(Filename=file_path, OutputWorkspace="engggui_calibration_sample_ws", **kwargs)
     except Exception as e:
         logger.error("Error while loading workspace. "
                      "Could not run the algorithm Load successfully for the data file "
-- 
GitLab