Skip to main content

The 'epyunit' package provides a wrapper for unit tests of commandline interfaces, and the automation of debugging with PyDev for external processes. The package could be used either from the comandline, or integrated into Eclipse with PyDev.

Project description

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.006 - 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

Project details


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

Uploaded Source

epyunit-0.2.6.linux-x86_64.exe (139.9 kB view details)

Uploaded Source

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

Uploaded Source

epyunit-0.2.6-1.noarch.rpm (88.4 kB view details)

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for epyunit-0.2.6.tar.gz
Algorithm Hash digest
SHA256 6c8a1e1fdbe1a6c8625ac58ca9e558075bcf7788cc80ad937dc3bff00f658318
MD5 a8086816822b62f1f3b878f565e60516
BLAKE2b-256 4351c761ba7cbd7aec0466de339b769758bee988a595b311284a8f4a596acafe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for epyunit-0.2.6.linux-x86_64.tar.gz
Algorithm Hash digest
SHA256 a7576d68cd3b46e3295c4d807e248c604b2ac37595821f29a093afda2543c73f
MD5 b13d4912f4962e45a3938910fce41eea
BLAKE2b-256 88106b2a9a85263204c9c594cb68c29c6e7c3be7e76bff06dfd5598ad5c4a530

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for epyunit-0.2.6.linux-x86_64.exe
Algorithm Hash digest
SHA256 8ae5c47a9c5dceb4d789df39f0ca52d586876c345e62e58ccd459f9bc9d05fef
MD5 0b5d7ff50d18ec09f3931792232cadb4
BLAKE2b-256 7c6d0c1ae8120cd938fc1358f5938d081002422a53118c1ddee386ed19bc4e95

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for epyunit-0.2.6-1.src.rpm
Algorithm Hash digest
SHA256 7a011a9bddb67cacda3c0927e196a7bbd7d6996ff3468c28d654b2f9e2bc11ca
MD5 cfa52997cd42e3b5708931ee9ca1caff
BLAKE2b-256 6eda5d857509e4e9823b961be14a3a093cda63fe5cfb9b8914b04ec52cda4d03

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for epyunit-0.2.6-1.noarch.rpm
Algorithm Hash digest
SHA256 82ccb7df419e153c585dfbfaed8a56b33e8143a27515ea9d4239841285f9223f
MD5 9df7207af376c033f2dc840364de9290
BLAKE2b-256 be229b080298bfe5cec56c6928ee783a712d199d8182213888e94dabee19c8aa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page