From 9fbb1cce82b23e21e65ccb6a45a3585363ae6632 Mon Sep 17 00:00:00 2001
From: Sam Jenkins <s.jenkins@stfc.ac.uk>
Date: Wed, 16 Jan 2019 09:08:59 +0000
Subject: [PATCH] Re #24512 added calibration tests

---
 .../tests/analysis/EnginXScriptTest.py        | 76 +++++++++++++++++--
 1 file changed, 71 insertions(+), 5 deletions(-)

diff --git a/Testing/SystemTests/tests/analysis/EnginXScriptTest.py b/Testing/SystemTests/tests/analysis/EnginXScriptTest.py
index 767122057a3..24dec080f2f 100644
--- a/Testing/SystemTests/tests/analysis/EnginXScriptTest.py
+++ b/Testing/SystemTests/tests/analysis/EnginXScriptTest.py
@@ -6,16 +6,26 @@
 # SPDX - License - Identifier: GPL - 3.0 +
 
 from __future__ import (absolute_import, division, print_function)
+import os
 import systemtesting
+import shutil
 import mantid.simpleapi as simple
+from mantid import config
 from Engineering.EnginX import EnginX
 
+DIRS = config['datasearch.directories'].split(';')
+
+root_directory = os.path.join(DIRS[0], "ENGINX")
+cal_directory = os.path.join(root_directory, "cal")
+focus_directory = os.path.join(root_directory, "focus")
+focus_tests = 0
 
 class CreateVanadiumTest(systemtesting.MantidSystemTest):
 
     def runTest(self):
+        os.makedirs(cal_directory)
         test = EnginX(user="test", vanadium_run="236516",
-                      directory="/home/sjenkins/Work/Build-1/ExternalData/Testing/Data/SystemTest")
+                      directory=cal_directory)
         test.create_vanadium()
 
     def validate(self):
@@ -23,19 +33,75 @@ class CreateVanadiumTest(systemtesting.MantidSystemTest):
 
     def cleanup(self):
         simple.mtd.clear()
+        _try_delete(cal_directory)
 
 
 class CreateCalibrationWholeTest(systemtesting.MantidSystemTest):
 
     def runTest(self):
+        os.makedirs(cal_directory)
         test = EnginX(user="test", vanadium_run="236516",
-                      directory="/home/sjenkins/Work/Build-1/ExternalData/Testing/Data/SystemTest")
+                      directory=cal_directory)
+        test.create_vanadium()
         test.create_calibration()
 
     def validate(self):
-        return ("eng_calib", "engggui_calibration_sample.nxs",
-                "engg_calibration_bank_1", "engggui_calibration_bank_1.nxs",
-                "engg_calibration_bank_2", "engggui_calibration_bank_2.nxs",)
+        return ("engg_calibration_bank_1", "engggui_calibration_bank_1.nxs",
+                "engg_calibration_bank_2", "engggui_calibration_bank_2.nxs",
+                "engg_calibration_banks_parameters", "engggui_calibration_banks_parameters.nxs")
+
+    def cleanup(self):
+        simple.mtd.clear()
+        _try_delete(cal_directory)
+
+
+class CreateCalibrationCroppedTest(systemtesting.MantidSystemTest):
+
+    def runTest(self):
+        os.makedirs(cal_directory)
+        test = EnginX(user="test", vanadium_run="236516",
+                      directory=cal_directory)
+        test.create_vanadium()
+        test.create_calibration(cropped="spectra", spectra="1-20")
+
+    def validate(self):
+        return ("cropped", "engggui_calibration_bank_cropped.nxs",
+                "engg_calibration_banks_parameters", "engggui_calibration_bank_cropped_parameters.nxs")
+
+    def cleanup(self):
+        simple.mtd.clear()
+        _try_delete(cal_directory)
+
+
+class CreateCalibrationBankTest(systemtesting.MantidSystemTest):
+
+    def runTest(self):
+        os.makedirs(cal_directory)
+        test = EnginX(user="test", vanadium_run="236516",
+                      directory=cal_directory)
+        test.create_vanadium()
+        test.create_calibration(cropped="banks", bank="South")
+
+    def validate(self):
+        return ("engg_calibration_bank_2", "engggui_calibration_bank_2.nxs",
+                "engg_calibration_banks_parameters", "engggui_calibration_bank_south_parameters.nxs")
+
+    def cleanup(self):
+        simple.mtd.clear()
+        _try_delete(cal_directory)
+
+
+
+
 
+def _try_delete(path):
+    try:
+        # Use this instead of os.remove as we could be passed a non-empty dir
+        if os.path.isdir(path):
+            shutil.rmtree(path)
+        else:
+            os.remove(path)
+    except OSError:
+        print ("Could not delete output file at: ", path)
 
 
-- 
GitLab