ExecutablesTestCase¶
- class lsst.utils.tests.ExecutablesTestCase(methodName='runTest')¶
Bases:
TestCaseTest that executables can be run and return good status.
The test methods are dynamically created. Callers must subclass this class in their own test file and invoke the create_executable_tests() class method to register the tests.
Attributes Summary
Methods Summary
assertExecutable(executable[, root_dir, ...])Check an executable runs and returns good status.
create_executable_tests(ref_file[, executables])Discover executables to test and create corresponding test methods.
Abort testing if automated test creation was enabled and no tests were found.
This test exists to ensure that there is at least one test to be executed.
Attributes Documentation
- TESTS_DISCOVERED = -1¶
Methods Documentation
- assertExecutable(executable: str, root_dir: Optional[str] = None, args: Optional[Sequence[str]] = None, msg: Optional[str] = None) None¶
Check an executable runs and returns good status.
Prints output to standard out. On bad exit status the test fails. If the executable can not be located the test is skipped.
- Parameters:
- executable
str Path to an executable.
root_diris not used if this is an absolute path.- root_dir
str, optional Directory containing executable. Ignored if
None.- args
listortuple, optional Arguments to be provided to the executable.
- msg
str, optional Message to use when the test fails. Can be
Nonefor default message.
- executable
- Raises:
- AssertionError
The executable did not return 0 exit status.
- classmethod create_executable_tests(ref_file: str, executables: Optional[Sequence[str]] = None) None¶
Discover executables to test and create corresponding test methods.
Scans the directory containing the supplied reference file (usually
__file__supplied from the test class) to look for executables. If executables are found a test method is created for each one. That test method will run the executable and check the returned value.Executable scripts with a
.pyextension and shared libraries are ignored by the scanner.This class method must be called before test discovery.
- Parameters:
- ref_file
str Path to a file within the directory to be searched. If the files are in the same location as the test file, then
__file__can be used.- executables
listortuple, optional Sequence of executables that can override the automated detection. If an executable mentioned here is not found, a skipped test will be created for it, rather than a failed test.
- ref_file
Examples
>>> cls.create_executable_tests(__file__)