ExecutablesTestCase¶
-
class
lsst.utils.tests.
ExecutablesTestCase
(methodName='runTest')¶ Bases:
unittest.case.TestCase
Test 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
TESTS_DISCOVERED
Methods Summary
assertExecutable
(executable, root_dir, args, msg)Check an executable runs and returns good status. create_executable_tests
(ref_file, executables)Discover executables to test and create corresponding test methods. setUpClass
()Abort testing if automated test creation was enabled and no tests were found. testSanity
()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_dir
is not used if this is an absolute path.- root_dir :
str
, optional Directory containing executable. Ignored if
None
.- args :
list
ortuple
, optional Arguments to be provided to the executable.
- msg :
str
, optional Message to use when the test fails. Can be
None
for default message.
Raises: - AssertionError
The executable did not return 0 exit status.
- executable :
-
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
.py
extension 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 :
list
ortuple
, 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.
Examples
>>> cls.create_executable_tests(__file__)
- ref_file :
-
classmethod
setUpClass
() → None¶ Abort testing if automated test creation was enabled and no tests were found.
-
testSanity
() → None¶ Ensure that there is at least one test to be executed. This allows the test runner to trigger the class set up machinery to test whether there are some executables to test.
-