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
The ‘epyunit’ package provides extensions of the PyUnit framework for unit and regression tests of executables written in arbitrary languages. In distinction to some more comprising and though complex frameworks the ‘epyunit’ provides a minimal but sufficient approach in particular for the low-effort test automation of scripts and tools.
The reuse of the standard PyUnit in combination with PyDev provides out-of-the-box integration into the Eclipse-IDE. Thus command line based regression tests as well as a graphical frontend for test statistics provided by PyDev could be applied.
The epyunit components call the wrapped process and read the execution results from STDOUT, STDERR, and the exit value. The values are read into Python variables either for further processing, or optional pass-through to the caller.
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’.
The main interface classes are:
FileSysObjectsMin - A subset of the project PyFileSysObjects.
SystemCalls - Adaptation of sub-process calls for unit tests.
The architecture is based on the packages ‘PyUnit’ and ‘PyDev’:
+-----------------------+ call +-----------------------+ | | ------> | | Subprocess | ePyUnit | | Wrapped-Executable | | | <----- | | +-----------------------+ stdin +-----------------------+ | stderr | | exit V | +-----------------------+ PyDev Remote | | PyDevRemoteDBG | Debug into subprocess Debug Server | +-----------------------+ | | . . . . . . . . | . . . . . . . . . . . . . . . . . . . | . . . . . . . . | | V V +-----------------------+ +-----------------------+ Python Units | PyUnit | <---> | PyDev | +-----------------------+ +-----------------------+ | | | V V / +-----------+ +-----------+ / IDE | CLI | | Eclipse |<--------------------/ +-----------+ +-----------+
For examples and patterns see subdirectories:
UseCases
tests
Downloads:
Sourceforge.net: https://sourceforge.net/projects/epyunit/files/
Online documentation:
setup.py
The installer adds a few options to the standard setuptools options.
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.00
RELEASE: 00.00
NICKNAME: ‘Dromi’
STATUS: pre-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.
Current Release: 00.01.010 - Alpha:
REMARK: This is an informal pre-work-release with some bugs, lots of UnitFailures - the stable is following within one or two days.
Major Changes:
Fixes.
Introduced match lists of regexpr.
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.
ToDo:
Finish list of actual matches.
Correlator engine.
Current test status:
- REMARK: Works already stable, but has still to be tested. Due to some
urgent required ads for a contract I have to push it already to the public as reference, for the same reason require this now for the ‘bash-core-lib’ family of extensions for the bash on the road to the cross platform object oriented scripting platform including the new introduced shell-scriptlets.
- ATTENTION: Some of the tests involve the remote debug feature of PyDev/Eclipse,
thus require a running local RemoteDebugServer, see manuals.
UnitTests: >128
Use-Cases as UnitTests: >29
Total: >150
nn
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for epyunit-0.1.10.linux-x86_64.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b78c852602c74239c4cc10cd85d9e0a8e597995a9467c2af1959fdaf728a1d21 |
|
MD5 | b1457291368764e7ad1b82a3c4966e42 |
|
BLAKE2b-256 | 787ac6ff073d19bfeea5643c043150bf2f370611ab27f1ed317a9a534832623e |