Skip to main content

Abstract

The ePyUnit package provides extensions for the integrated Testautomation and Debugging of executables and scipts as subprocesses.

Technically ePyUnit provides extensions for the PyUnit and PyDev/Eclipse frameworks for blackbox tests and seamless integrated debugging of executables and scripts including nested calls of subprocesses. The standard frameworks, libraries and IDEs provide components as presented by the following figure.:

.                                 :
   +----------------+             :       +---------------------------+
   |    unittest    |             :       |  scripts and executables  |
   +---+------------+---+         :       +---+-----------------------+---+
       |   automation   |         :           |       debugging           |
       +----------------+         :           +---------------------------+
.                                 :

These are extended by framework features for the seamless cross-process integration of scripts and programs.:

.
+------------------------------+       +-----------------------------+
|   automation and unittest    |       |   seamless cross-process    |
|        for arbitrary         | <---> |          debugging          |
|   scripts and executables    |       |                             |
+------------------------------+       +-----------------------------+

|<---                     seamless integration                   --->|
.

The included automation extension for the PyDev/Eclipse based debugging of – local and remote – Python subprocesses provides simplified support of detailed error analysis in case of test failures.

Blueprint

The ‘ePyUnit’ package provides a minimal but sufficient approach in particular for the low-effort test automation of scripts and tools suitable for operations of large scale application tests as well as for daily and advanced DevOps tasks.

  • ePyUnit encapsulates processes and relies on PyUnit for commandline based unit and regression tests. The main focus is general blackbox testing of executables, for Python in addition the automation of PyDev debugging is included , see ‘https://pythonhosted.org/epyunit/call_integration.html’.

  • ePyUnit integrates into PyDev for the support of the graphical Eclipse IDE of unit testing and integrated graphical debugging, this is also supported for external processes started independently from the commandline, see ‘https://pythonhosted.org/epyunit/pydevd_integration.html’.

The ePyUnit components call the wrapped process and read the execution results from STDOUT, STDERR, and the exit value. The values are cached by Python variables either for further processing, or optional pass-through to the caller.

The architecture is based on the packages ‘PyUnit’ and ‘PyDev’:

                   +-----------------------+     call      +-----------------------+
                   |                       |    ------>    |                       |
Subprocess         |        ePyUnit        |               |  Wrapped-Executable   |
                   |                       |    <-----     |                       |
                   +-----------------------+     stdin     +-----------------------+
                               |                 stderr                |
                               |                 exit                  V
                               |                           +-----------------------+
PyDev Remote                   |                           |        PyDevRDC       |   Debug into
Debug Server                   |                           +-----------------------+   subprocess
                               |                                       |
               . . . . . . . . | . . . . . . . . . . . . . . . . . . . | . . . . . . . .
                               |                                       |
                               V                                       V
                   +-----------------------+               +-----------------------+
Python Units       |         PyUnit        |     <--->     |         PyDev         |
                   +-----------------------+               +-----------------------+
                       |               |                              |
                       V               V                             /
                 +-----------+   +-----------+                      /
IDE              |    CLI    |   |  Eclipse  |<--------------------/
                 +-----------+   +-----------+

The test components collect internally the data of multiple output sources and decide based on the selection of the user parameters whether the test was successful or has failed. Therefore a similar approach to Fuzzy-Logic is applied on mixed results consisting of partial failures and success. The provided scenarios are single level subprocesses:

+----------------+      +------------+
| Python-Process | <--> | Subprocess |
+----------------+      +------------+

and nested multilevel scripts and executables as subprocesses:

+----------------+      +------------+            +------------+
| Python-Process | <--> | Subprocess | <- ... --> | Subprocess |
+----------------+      +------------+            +------------+

Where each level of subprocesses could start an arbitrary number of local and remote subprocesses itself, and either correlate or pass-through the results. Due to some bugfixes the backport from Python3.x subprocess32 is optionally supported when present.

The provided package comprises functional atoms for various UseCases, as well as extension classes for the ‘unittest’ package to be used in combination with PyUnit and PyDev..

The ‘epyunit’ package provides in particular:

  • Support for unit tests of shell scripts - bash - from command line and Eclipse/PyDev

  • The simplified reuse of executables as test-dummies within multiple test cases.

  • The categorization of structures defined by the directory tree.

  • The support of arbitrary intermixed implementation languages for executables.

The implementation supports Python(>=2.7) and integrates into the Eclipse IDE with PyDev, and PyUnit.

The package ‘epyunit’ is a spin off from the project ‘UnifiedSessionsManager-2.0’.

For examples and patterns see subdirectories:

  • UseCases

  • tests

Downloads:

Online documentation:

setup.py

The installer adds a few options to the standard setuptools options.

  • build_doc: Creates the integrated documentation for runtime systems including API in ‘epyunit/build/apidoc/epyunit’.

  • install_doc: Installs documents into source project ‘epyunit/doc’, and the ‘HOME’ or ‘AppData’.

  • build_sphinx: Creates documentation for runtime system by Sphinx, html only. Calls ‘callDocSphinx.sh’.

  • build_epydoc: Creates documentation for runtime system by Epydoc, html only. Calls ‘callDocEpydoc.sh’.

  • test: Runs PyUnit tests by discovery.

  • –help-epyunit: Displays this help.

  • –no-install-required: Suppresses installation dependency checks, requires appropriate PYTHONPATH.

  • –offline: Sets online dependencies to offline, or ignores online dependencies.

  • –exit: Exit ‘setup.py’.

After successful installation the ‘selftest’ verifies basic checks by:

epyunit –selftest

with the exit value ‘0’ when OK.

The option ‘-v’ raises the degree of verbosity for inspection

epyunit –selftest -v -v -v -v

Project Data

  • PROJECT: ‘epyunit’

  • MISSION: Extend the standard PyUnit package for arbitrary ExecUnits.

  • VERSION: 00.02

  • RELEASE: 00.02

  • NICKNAME: ‘Dromi’

  • STATUS: alpha

  • AUTHOR: Arno-Can Uestuensoez

  • COPYRIGHT: Copyright (C) 2010,2011,2015-2016 Arno-Can Uestuensoez @Ingenieurbuero Arno-Can Uestuensoez

  • LICENSE: Artistic-License-2.0 + Forced-Fairplay-Constraints Refer to enclose documents:

    • ArtisticLicense20.html - for base license: Artistic-License-2.0

    • licenses-amendments.txt - for amendments: Forced-Fairplay-Constraints

Versions and Releases

Planned Releases:

  • RELEASE: 00.00.00x - Pre-Alpha: Extraction of the features from hard-coded application into a reusable package.

  • RELEASE: 00.01.00x - Alpha: Completion of basic features.

  • RELEASE: 00.02.00x - Alpha: Completion of features, stable interface.

  • RELEASE: 00.03.00x - Beta: Accomplish test cases for medium to high complexity.

  • RELEASE: 00.04.00x - Production: First production release. Estimated number of UnitTests := 1000.

  • RELEASE: 00.05.00x - Production: Various performance enhancements.

  • RELEASE: 00.06.00x - Production: Security review.

  • RELEASE: > - Production: Stable and compatible continued development.

Current Release: 00.02.008 - Alpha:

This is a nightly-build, next following soon. Major Changes:

  • minor fixes

Current test status:

ATTENTION: Some of the tests involve the remote debug feature of PyDev/Eclipse,

thus require a running local RemoteDebugServer, see manuals.

  • UnitTests: >600(CLI)/700(Eclipse)

  • Use-Cases as UnitTests: >140

Total: >800

nn

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

epyunit-0.2.8.tar.gz (3.5 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

epyunit-0.2.8.linux-x86_64.tar.gz (94.5 kB view details)

Uploaded Source

epyunit-0.2.8.linux-x86_64.exe (140.2 kB view details)

Uploaded Source

epyunit-0.2.8-1.src.rpm (3.1 MB view details)

Uploaded Source

epyunit-0.2.8-1.noarch.rpm (88.7 kB view details)

Uploaded Source

File details

Details for the file epyunit-0.2.8.tar.gz.

File metadata

  • Download URL: epyunit-0.2.8.tar.gz
  • Upload date:
  • Size: 3.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for epyunit-0.2.8.tar.gz
Algorithm Hash digest
SHA256 b14fdea3288543d88937e712e206227bc8df2eeac7afe21c665e2d4e3260412b
MD5 d429e4d2911902c1492aa737a77146ac
BLAKE2b-256 e1751b89ec6e966e592b546ec771d81b0ae8deaf9636d5eb35ebc8eef7994de1

See more details on using hashes here.

File details

Details for the file epyunit-0.2.8.linux-x86_64.tar.gz.

File metadata

File hashes

Hashes for epyunit-0.2.8.linux-x86_64.tar.gz
Algorithm Hash digest
SHA256 c9d8b332468b50126985e52ee47363e360a2e8085cea16f23c41b8acdf7f9a13
MD5 80a7ef1a5598c986070011db740a0a81
BLAKE2b-256 85b025703fb2ae04e8fc57e415d2ce85fcd7ea64c10b534934ff16d1a1118994

See more details on using hashes here.

File details

Details for the file epyunit-0.2.8.linux-x86_64.exe.

File metadata

File hashes

Hashes for epyunit-0.2.8.linux-x86_64.exe
Algorithm Hash digest
SHA256 fe78a403cb3c410d9d6b61b8ecbf4b794238d62ba7f304a0ac220170b6741b66
MD5 a37151041f8ebf16865ecce54b5616a1
BLAKE2b-256 d79fd2db93e215af6b0d2372121a4bce4ebc6e0e10e7cb7160a8d5baded35547

See more details on using hashes here.

File details

Details for the file epyunit-0.2.8-1.src.rpm.

File metadata

  • Download URL: epyunit-0.2.8-1.src.rpm
  • Upload date:
  • Size: 3.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for epyunit-0.2.8-1.src.rpm
Algorithm Hash digest
SHA256 b8192cef1d07487bac309ad31c67bdabadaff68ff52ad1517942f2193419f7f7
MD5 7a1ebc3fc96793281f7d565732823e87
BLAKE2b-256 7e5f3fe43b148e9e545211e7c3bc52074a70ed19732f74a8bd3dafb1e81534d5

See more details on using hashes here.

File details

Details for the file epyunit-0.2.8-1.noarch.rpm.

File metadata

  • Download URL: epyunit-0.2.8-1.noarch.rpm
  • Upload date:
  • Size: 88.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for epyunit-0.2.8-1.noarch.rpm
Algorithm Hash digest
SHA256 3834001dc5c4f69c0123a4336590ab9691bbceb9d0fe058c9d609f644ab76b52
MD5 461bb967b5fe3cf7f61fccbea729de1a
BLAKE2b-256 1dc3fbf49a9961990355f3150c47e6da8c9fc9d1b5e3d3f3c7d9c548700a2acf

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.12

4 files

0.2.11

5 files

0.2.10

5 files

0.2.9

4 files

This release

0.2.8 This release

5 files

0.2.7

5 files

0.2.6

5 files

0.2.5

5 files

0.2.0

5 files

0.1.14

5 files

0.1.13

3 files

0.1.12

5 files

0.1.11

4 files

0.1.10

5 files

0.1.9

5 files

0.1.8

5 files

0.1.7

5 files

0.0.10

4 files

0.0.1

4 files

0.0.0

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page