Skip to main content
Python Software Foundation 20th Year Anniversary Fundraiser  Donate today!

Testing utilities for projects that use ConfTools for handling their configuration.

Project description



Testing utilities built on top of [ConfTools][conftools], [CompMake][compmake]
and [QuickApp][quickapp].

Basic Usage

This is the usage for packages that register objects using [ConfTools][conftools].

# Defining tests

Call the function ``comptests_for_all`` to create a decorator:

# get the library (ObjSpec)
library_robots = get_conftools_robots()

# Create a test decorator
for_all_robots = comptests_for_all(library_robots)

# Use the decorator to specify tests. Test functions
# must take two arguments: id object and object itself

def check_robot_type(id_robot, robot):
assert isinstance(robot, RobotInterface)

You can also register tests for pairs:

library_nuisances = get_conftools_nuisances()
for_all_robot_nuisance_pairs = comptests_for_all_pairs(library_robots, library_nuisances)

def check_nuisances_obs(id_robot, robot, id_nuisance, nuisance):
check_conversions(robot.get_spec().get_observations(), nuisance)

# Running tests

Use the command line:

comptests <module>

This looks for the ``get_comptests()`` function in ``<module>``:

def get_comptests():
# get testing configuration directory
from pkg_resources import resource_filename
dirname = resource_filename("boot_agents", "configs")
# load unittests
from . import unittests
from comptests import get_comptests_app
# Get the Quickapp for the boot_config
app = get_comptests_app(get_boot_config())
return [app]

Finding coverage information

It's very usuful to use the ``coverage`` tool together with comptests.

Install the ``coverage`` tool:

pip install coverage

If ``coverage`` is installed then comptests automatically computes
the coverage information for nosetests execution.

To do the coverage information for the comptests, run like this:

coverage run =comptests -c "make recurse=1" <package>

Note that you cannot use parallel testing (using ``parmake``) otherwise
coverage gets confused.

This displays the results:

coverage report -m

Then create the HTML report:

coverage html -d outdir

Project details

Download files

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

Files for comptests, version 1.4.34
Filename, size File type Python version Upload date Hashes
Filename, size comptests-1.4.34.tar.gz (21.8 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page