Source code for testing.helpers
"""Helper functions for integration testing."""
import os
from pathlib import Path
[docs]
def skip_camera_efficiency(config):
"""Skip camera efficiency tests if the old version of testeff is used."""
if "camera-efficiency" in config["APPLICATION"]:
if not _new_testeff_version():
return (
"Any applications calling the old version of testeff are skipped "
"due to a limitation of the old testeff not allowing to specify "
"the include directory. Please update your sim_telarray tarball."
)
full_test_name = f"{config['APPLICATION']}_{config['TEST_NAME']}"
if "simtools-validate-camera-efficiency_SSTS" == full_test_name:
return (
"The test simtools-validate-camera-efficiency_SSTS is skipped "
"since the fake SST mirrors are not yet implemented (#1155)"
)
return None
def _new_testeff_version():
"""
Testeff has been updated to allow to specify the include directory.
This test checks if the new version is used.
"""
testeff_path = Path(os.getenv("SIMTOOLS_SIMTEL_PATH")) / "sim_telarray/testeff.c"
try:
with open(testeff_path, encoding="utf-8") as file:
file_content = file.read()
if (
"/* Combine the include paths such that those from '-I...' options */"
in file_content
):
return True
return False
except FileNotFoundError as exc:
raise FileNotFoundError("The testeff executable could not be found.") from exc