3. Blueprint

The modern landscapes of information infrastructures are commonly designed and organized as stacks of heterogeneous runtime environments with common frameworks. These contain frequently various heterogeneous components which has to be tested as integrated applications. The setuptestx supports a common call interface for the major implementations and releases of Python on various operating systems and their variants of distributions.

_images/setuplib-architecture.png

Figure: Setuplib Integration zoom

The setuptestx is hereby the low-level part, while the more complex test envitonment is provided by epyunit [EPYUNIT].

The current provided extensions are:

  • Test automation for the unittest of multiple combined source packages:

    python setup.py testx             # supports the major implementations:
                                      #    CPython, IPython, PyPY : Python2.7, and Python3.5+
                                      #    IronPython, Jython     : Python2.7
                                      #
                                      # OS see Tested Platforms

Based on mostly defaults it is for example a simple task to use different installed Python implementations and releases by using the –implementation option or the short form -i:

  • CPython - see Howto CPython:

    python setup.py testx --print-vinfo -i python
    python setup.py testx --print-vinfo -i python3
    python setup.py testx --print-vinfo -i python3.5
    python setup.py testx --print-vinfo -i python2
    
  • IPython - see Howto IPython:

    python setup.py testx --print-vinfo -i ipython
    python setup.py testx --print-vinfo -i ipython2
    python setup.py testx --print-vinfo -i ipython3
    
  • IronPython - see Howto IronPython:

  • Jython:

    python setup.py testx --print-vinfo -i jython
    
  • PyPy - see Howto PyPy:

    python setup.py testx --print-vinfo -i pypy
    python setup.py testx --print-vinfo -i pypy2
    python setup.py testx --print-vinfo -i pypy3
    

The setuptestx supports hereby basic subprocess calls by os.system(), thus supports the modification of the called environment by shell inheritance. For example in case of the bash:

PATH=/opt/pypy/pypy3.5-5.10.1/bin/:$PATH python setup.py testx --print-vinfo -i pypy

For more advanced options refer to a never release of the epyunit [EPYUNIT].