ATLAS Offline Software
Public Member Functions | Public Attributes | List of all members
python.Test.WorkflowTest Class Reference
Inheritance diagram for python.Test.WorkflowTest:
Collaboration diagram for python.Test.WorkflowTest:

Public Member Functions

None __init__ (self, str ID, WorkflowRun run, WorkflowType type, List[str] steps, TestSetup setup)
 
None run_reference (self)
 
None run_validation (self)
 
bool run_checks (self, List[WorkflowCheck] performance_checks)
 

Public Attributes

 ID
 
 tag
 
 steps
 
 output_checks
 
 digest_checks
 
 skip_performance_checks
 
 run
 
 type
 
 setup
 
 logger
 

Detailed Description

Workflow test base class.

Definition at line 129 of file Tools/WorkflowTestRunner/python/Test.py.

Constructor & Destructor Documentation

◆ __init__()

None python.Test.WorkflowTest.__init__ (   self,
str  ID,
WorkflowRun  run,
WorkflowType  type,
List[str steps,
TestSetup  setup 
)

Definition at line 132 of file Tools/WorkflowTestRunner/python/Test.py.

132  def __init__(self, ID: str, run: WorkflowRun, type: WorkflowType, steps: List[str], setup: TestSetup) -> None:
133  if not hasattr(self, "ID"):
134  self.ID = ID
135 
136  if not hasattr(self, "tag"):
137  self.tag = ID
138 
139  if not hasattr(self, "steps"):
140  self.steps = steps
141 
142  if not self.command:
143  raise NotImplementedError("Command needs to be defined")
144 
145  if not hasattr(self, "output_checks"):
146  self.output_checks = []
147 
148  if not hasattr(self, "digest_checks"):
149  self.digest_checks = []
150 
151  if not hasattr(self, "skip_performance_checks"):
152  self.skip_performance_checks = False
153 
154  self.run = run
155  self.type = type
156  self.setup = setup
157  self.logger = setup.logger
158  self.validation_path: Path = self.setup.validation_run_path / f"run_{self.ID}"
159  self.reference_path: Path = self.setup.reference_run_path / f"run_{self.ID}"
160 

Member Function Documentation

◆ run_checks()

bool python.Test.WorkflowTest.run_checks (   self,
List[WorkflowCheck performance_checks 
)

Definition at line 198 of file Tools/WorkflowTestRunner/python/Test.py.

198  def run_checks(self, performance_checks: List[WorkflowCheck]) -> bool:
199  self.logger.info("-----------------------------------------------------")
200  self.logger.info(f"----------- Post-processing of {self.ID} Test -----------")
201  result = True
202 
203  # digest checks
204  for check in self.digest_checks:
205  result = check.run(self) and result
206 
207  # output checks
208  if not self.setup.disable_output_checks:
209  for check in self.output_checks:
210  result = check.run(self) and result
211 
212  if self.setup.validation_only or self.skip_performance_checks:
213  return result # Performance checks against static references not possible
214 
215  # performance checks
216  for check in performance_checks:
217  result = check.run(self) and result
218 
219  return result

◆ run_reference()

None python.Test.WorkflowTest.run_reference (   self)

Definition at line 161 of file Tools/WorkflowTestRunner/python/Test.py.

161  def run_reference(self) -> None:
162  self.logger.info(f"Running reference in rel {self.setup.release_reference}")
163  self.logger.info(f"\"{self.command}\"")
164 
165  self.reference_path.mkdir(parents=True, exist_ok=True)
166 
167  cmd = (f"cd {self.reference_path};"
168  f"source $AtlasSetup/scripts/asetup.sh {self.setup.release_reference} >& /dev/null;")
169  cmd += f"TRF_NOECHO=1 {self.command} > {self.ID}.log 2>&1"
170 
171  subprocess.call(cmd, shell=True)
172 
173  self.logger.info(f"Finished clean in rel {self.setup.release_reference}")
174  self.logger.info(f"\"{self.command}\"")
175 

◆ run_validation()

None python.Test.WorkflowTest.run_validation (   self)

Definition at line 176 of file Tools/WorkflowTestRunner/python/Test.py.

176  def run_validation(self) -> None:
177  self.logger.info(f"Running validation in rel {self.setup.release_validation}")
178  self.logger.info(f"\"{self.command}\"")
179 
180  self.validation_path.mkdir(parents=True, exist_ok=True)
181 
182  cmd = f"cd {self.validation_path};"
183  if self.setup.disable_release_setup or not self.setup.release_validation:
184  pass
185  elif "WorkDir_DIR" in environ:
186  cmake_build_dir = environ["WorkDir_DIR"]
187  cmd += (f"source $AtlasSetup/scripts/asetup.sh {self.setup.release_validation} >& /dev/null;"
188  f"source {cmake_build_dir}/setup.sh;")
189  else:
190  cmd += f"source $AtlasSetup/scripts/asetup.sh {self.setup.release_validation} >& /dev/null;"
191  cmd += f"TRF_NOECHO=1 {self.command} > {self.ID}.log 2>&1"
192 
193  subprocess.call(cmd, shell=True)
194 
195  self.logger.info(f"Finished validation in rel {self.setup.release_validation}")
196  self.logger.info(f"\"{self.command}\"")
197 

Member Data Documentation

◆ digest_checks

python.Test.WorkflowTest.digest_checks

Definition at line 149 of file Tools/WorkflowTestRunner/python/Test.py.

◆ ID

python.Test.WorkflowTest.ID

Definition at line 134 of file Tools/WorkflowTestRunner/python/Test.py.

◆ logger

python.Test.WorkflowTest.logger

Definition at line 157 of file Tools/WorkflowTestRunner/python/Test.py.

◆ output_checks

python.Test.WorkflowTest.output_checks

Definition at line 146 of file Tools/WorkflowTestRunner/python/Test.py.

◆ run

python.Test.WorkflowTest.run

Definition at line 154 of file Tools/WorkflowTestRunner/python/Test.py.

◆ setup

python.Test.WorkflowTest.setup

Definition at line 156 of file Tools/WorkflowTestRunner/python/Test.py.

◆ skip_performance_checks

python.Test.WorkflowTest.skip_performance_checks

Definition at line 152 of file Tools/WorkflowTestRunner/python/Test.py.

◆ steps

python.Test.WorkflowTest.steps

Definition at line 140 of file Tools/WorkflowTestRunner/python/Test.py.

◆ tag

python.Test.WorkflowTest.tag

Definition at line 137 of file Tools/WorkflowTestRunner/python/Test.py.

◆ type

python.Test.WorkflowTest.type

Definition at line 155 of file Tools/WorkflowTestRunner/python/Test.py.


The documentation for this class was generated from the following file:
grepfile.info
info
Definition: grepfile.py:38
plot_material.mkdir
def mkdir(path, recursive=True)
Definition: plot_material.py:16
python.processes.powheg.ZZ.ZZ.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZ.py:18
python.ScriptUtils.run_checks
bool run_checks(TestSetup setup, List[WorkflowTest] tests, List[WorkflowCheck] performance_checks)
Definition: ScriptUtils.py:269