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.

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.000 - Alpha:

First release where contained parts are pre-beta after finally passing intense testing - >590(CLI) / >730(Eclipse). Still a few basic interfaces to be added to the API.

Major Changes:

  • Common bug fixes.

  • Tested now and released on: Linux(Fedora), Mac-OS(SnowLeopard), Cygwin, and Windows7, but for now still alpha.

  • The documents are mostly complete, but still in review.

  • Added tests.

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.0.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.0.linux-x86_64.tar.gz (84.8 kB view details)

Uploaded Source

epyunit-0.2.0.linux-x86_64.exe (134.2 kB view details)

Uploaded Source

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

Uploaded Source

epyunit-0.2.0-1.noarch.rpm (83.5 kB view details)

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for epyunit-0.2.0.tar.gz
Algorithm Hash digest
SHA256 9112bb4fe47910994f63bc1acc6c88e423ac2ae27a9933159f225b2dae3b24d8
MD5 d9de510108964aebd500b489e023135e
BLAKE2b-256 3feccec335523853fffc444dd00ee1baa0b8e341501822bf8aa9058b21039407

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for epyunit-0.2.0.linux-x86_64.tar.gz
Algorithm Hash digest
SHA256 7429a7238cc6306049c034a9e28c12518b4e2ca5dbce6af3fe9205cdcd36ed0a
MD5 27ca127e1c986d197563b468b3876a4d
BLAKE2b-256 2616d5a49fb40cb485d1d620b5296f5fcb670a162e45e9541f0fef4f7aa96b07

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for epyunit-0.2.0.linux-x86_64.exe
Algorithm Hash digest
SHA256 e46b799f4337c81e7ab8556f45550bfb6ddd2a4b4a687271cc47d4b23f6cbba0
MD5 8c5ba845866a4c7e890de489ffb41615
BLAKE2b-256 80ec1904bbc8539059bb949e81910a32dc5f8496d9eef9c7986d0a853a591b46

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for epyunit-0.2.0-1.src.rpm
Algorithm Hash digest
SHA256 1657ac5573654b5afd406c7adcff0a9fe41fc673deb723f000813af3bb8fa209
MD5 608fa648da8e68b6becad12f5d263082
BLAKE2b-256 f2a0cd3710a730f44a8ad6b25f8c181b62f5b0831e2c73def9941ff3ee56463c

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for epyunit-0.2.0-1.noarch.rpm
Algorithm Hash digest
SHA256 79a149caac0586f5dee46df4ad654a0d144b58f9c30f2c7a848beb2361be837e
MD5 14fca018ce2e35089e6687522e755b73
BLAKE2b-256 6b83ff699f0c65476648674d1da6339359fad3d1abf1ae686ae8b3cdf5ec2728

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

0.2.8

5 files

0.2.7

5 files

0.2.6

5 files

0.2.5

5 files

This release

0.2.0 This release

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