Skip to main content

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

Project description

[![CircleCI](https://circleci.com/gh/AndreaCensi/comptests.svg?style=shield)](https://circleci.com/gh/AndreaCensi/comptests)

comptests
=========

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

@for_all_robots
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)

@for_all_robot_nuisance_pairs
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_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.

Source Distribution

comptests-1.4.34.tar.gz (21.8 kB view details)

Uploaded Source

File details

Details for the file comptests-1.4.34.tar.gz.

File metadata

  • Download URL: comptests-1.4.34.tar.gz
  • Upload date:
  • Size: 21.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2

File hashes

Hashes for comptests-1.4.34.tar.gz
Algorithm Hash digest
SHA256 09bf3a2e3b062879add62c62f3afb454f22474823992b3a8a9549af21614062d
MD5 6e61a856d2d11ba84bef53193af4ee37
BLAKE2b-256 7c1f79709787695701063936731f9a0519268ed453d8a3b36c19bb2c944f222c

See more details on using hashes here.

Supported by

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