Newer
Older
# Mantid Repository : https://github.com/mantidproject/mantid
#
# Copyright © 2019 ISIS Rutherford Appleton Laboratory UKRI,
# NScD Oak Ridge National Laboratory, European Spallation Source
# & Institut Laue - Langevin
# SPDX - License - Identifier: GPL - 3.0 +
from __future__ import (absolute_import, division, print_function)
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")
class CreateVanadiumTest(systemtesting.MantidSystemTest):
def runTest(self):
test = EnginX(user="test", vanadium_run="236516",
test.create_vanadium()
def validate(self):
return "eng_vanadium_integration", "engggui_vanadium_integration.nxs"
def cleanup(self):
simple.mtd.clear()
class CreateCalibrationWholeTest(systemtesting.MantidSystemTest):
test = EnginX(user="test", vanadium_run="236516",
directory=cal_directory)
test.create_vanadium()
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
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)
class FocusBothBanks(systemtesting.MantidSystemTest):
def runTest(self):
_setup_focus()
test = EnginX(user="test", vanadium_run="236516",
directory=focus_directory)
test.focus(run_number="299080")
def validate(self):
return("engg_focus_output_bank_1", "enggui_focusing_output_ws_bank_1.nxs",
"engg_focus_output_bank_2", "enggui_focusing_output_ws_bank_2.nxs")
def cleanup(self):
simple.mtd.clear()
_tear_down_focus()
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
class FocusCropped(systemtesting.MantidSystemTest):
def runTest(self):
_setup_focus()
test = EnginX(user="test", vanadium_run="236516",
directory=focus_directory)
test.focus(run_number="299080", cropped="spectra", spectra="1-20")
def validate(self):
return "engg_focus_output", "enggui_focusing_output_ws_bank_cropped.nxs"
def cleanup(self):
simple.mtd.clear()
_tear_down_focus()
class FocusTextureMode(systemtesting.MantidSystemTest):
def runTest(self):
_setup_focus()
csv_file = os.path.join(root_directory, "EnginX.csv")
location = os.path.join(focus_directory, "User", "test", "Calibration")
shutil.copy2(csv_file, location)
csv_file = os.path.join(location, "EnginX.csv")
test = EnginX(user="test", vanadium_run="236516",
directory=focus_directory)
test.focus(run_number="299080", grouping_file=csv_file)
output = "engg_focusing_output_ws_texture_bank_{}{}"
group = ""
for i in range(1, 11):
group = group+output.format(i, ",")
simple.GroupWorkspaces(InputWorkspaces=group, OutputWorkspace="test")
def validate(self):
outputlist=["engg_focusing_output_ws_texture_bank_{}".format(i) for i in range(1, 11)]
filelist=["enggui_texture_Bank_{}.nxs".format(i) for i in range(1, 11)]
validation_list = [x for t in zip(*[outputlist, filelist])for x in t]
return validation_list
def cleanup(self):
simple.mtd.clear()
_tear_down_focus()
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)
def _setup_focus():
os.makedirs(focus_directory)
test = EnginX(user="test", vanadium_run="236516",
directory=focus_directory)
test.create_vanadium()
test.create_calibration()
test.create_calibration(cropped="spectra", spectra="1-20")
simple.mtd.clear()
def _tear_down_focus():
_try_delete(focus_directory)