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 subprocess
Debug Server                   |                           +-----------------------+
                               |                                       |
               . . . . . . . . | . . . . . . . . . . . . . . . . . . . | . . . . . . . .
                               |                                       |
                               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.01

  • RELEASE: 00.01

  • 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 := 100.

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

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

Current Release: 00.01.014 - Alpha:

Major Changes:

  • Fixes.

  • The most may already work on Mac-OS and MS-Windows and others too, but due to priorities for now tested and released for Linux. Others are following soon.

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

  • Adapted structure for debug and unit test of multiple programming languages.

  • 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: >590(CLI)/730(Eclipse)

  • Use-Cases as UnitTests: >45

Total: >770

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.1.14.tar.gz (798.8 kB view details)

Uploaded Source

Built Distributions

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

epyunit-0.1.14.linux-x86_64.tar.gz (61.7 kB view details)

Uploaded Source

epyunit-0.1.14.linux-x86_64.exe (116.3 kB view details)

Uploaded Source

epyunit-0.1.14-1.src.rpm (813.0 kB view details)

Uploaded Source

epyunit-0.1.14-1.noarch.rpm (67.9 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: epyunit-0.1.14.tar.gz
  • Upload date:
  • Size: 798.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for epyunit-0.1.14.tar.gz
Algorithm Hash digest
SHA256 1b1671a79b4a10168ecfa5f091368212463ef4533b65ad791ddf94fe083ec03a
MD5 2592fa69dcf765d7a50759e0461e7ffc
BLAKE2b-256 9a9e7f061d97bc8a1c22d8187a0edacbe2d797af5f5fdb03f0617e96cd70d07e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for epyunit-0.1.14.linux-x86_64.tar.gz
Algorithm Hash digest
SHA256 b86aa9105f14f11aa3db2d424e37378155c794b44cfcbe60d26b4db9086f5244
MD5 3625dd330127e98fdb6278baf9eee5a2
BLAKE2b-256 b7999d023a09f9b67738a971dcdc74a247b69f7bb5a22cb8e87633ac319a1bd2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for epyunit-0.1.14.linux-x86_64.exe
Algorithm Hash digest
SHA256 48a8b5046abe7cebe1ec71e43925059d967ddd5de3170fdbe0a34ced7ee6060c
MD5 9e637ff86f89cc080a2e8155ba47f7a8
BLAKE2b-256 8d18d12f6fe022dbfb06ac5eb5938ecaad143c1a996a701328b9ebf7f5b3b753

See more details on using hashes here.

File details

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

File metadata

  • Download URL: epyunit-0.1.14-1.src.rpm
  • Upload date:
  • Size: 813.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for epyunit-0.1.14-1.src.rpm
Algorithm Hash digest
SHA256 4c7f9d55440e1dffa9f6b97a858ecef2de7658d2f9ec6ae9167a6d0ada8c07c2
MD5 b810a8365ed64108ef8a928fcf2054ca
BLAKE2b-256 4a62e330c2309049c64848823fe008a937b0834c42d2b82e51581bca13e350e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for epyunit-0.1.14-1.noarch.rpm
Algorithm Hash digest
SHA256 489478cbf6b5156af070ddc6f7d6e9b05f3ab65d376a4c02f1b07e5961bd9dea
MD5 a91a93953632625cbf3c80d0302dc080
BLAKE2b-256 f18584050acb2dd2542adc5ef6c99710649658546e718562fa03c5e215c37a4e

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

0.2.0

5 files

This release

0.1.14 This release

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