lsst.utils  20.0.0-1-g498fb60+ff88705a28
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
lsst.utils.tests.ExecutablesTestCase Class Reference
Inheritance diagram for lsst.utils.tests.ExecutablesTestCase:

Public Member Functions

def setUpClass (cls)
 
def testSanity (self)
 
def assertExecutable (self, executable, root_dir=None, args=None, msg=None)
 
def create_executable_tests (cls, ref_file, executables=None)
 

Public Attributes

 TESTS_DISCOVERED
 

Static Public Attributes

int TESTS_DISCOVERED = -1
 

Detailed Description

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.

Definition at line 146 of file tests.py.

Member Function Documentation

◆ assertExecutable()

def lsst.utils.tests.ExecutablesTestCase.assertExecutable (   self,
  executable,
  root_dir = None,
  args = None,
  msg = 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` or `tuple`, 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.

Definition at line 169 of file tests.py.

◆ create_executable_tests()

def lsst.utils.tests.ExecutablesTestCase.create_executable_tests (   cls,
  ref_file,
  executables = 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` or `tuple`, 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__)

Definition at line 252 of file tests.py.

◆ setUpClass()

def lsst.utils.tests.ExecutablesTestCase.setUpClass (   cls)
Abort testing if automated test creation was enabled and
no tests were found.

Definition at line 156 of file tests.py.

◆ testSanity()

def lsst.utils.tests.ExecutablesTestCase.testSanity (   self)
This test exists to 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.

Definition at line 163 of file tests.py.

Member Data Documentation

◆ TESTS_DISCOVERED [1/2]

int lsst.utils.tests.ExecutablesTestCase.TESTS_DISCOVERED = -1
static

Definition at line 153 of file tests.py.

◆ TESTS_DISCOVERED [2/2]

lsst.utils.tests.ExecutablesTestCase.TESTS_DISCOVERED

Definition at line 160 of file tests.py.


The documentation for this class was generated from the following file: