Destral testing library

A library to do tests with our OpenERP Server (v5)

https://travis-ci.org/gisce/destral.svg?branch=master https://badge.fury.io/py/destral.svg

Note

The API is not stable, and can be changed.

Code as if the next guy to maintain your code is a homicidal maniac who knows where you live.

—Kathy Sierra and Bert Bates

Running tests

To run your tests call destral from the command line. Options to the destral command are:

Usage: destral [OPTIONS]

  Options:
    --enable-coverage
    --report-coverage
    --dropdb/no-dropdb
    --requirements/no-requirements
    -m, --modules TEXT
    -t, --tests TEXT
    --help              Show this message and exit.

where -m are the modules to be tested and -t the tests to run. For the -t parameter is needed to pass full test class and method. Eg: SomeTestClass.test_method

If no specific tests are defined into the module, destral will test:

  • Correct installation of the module.
  • All the views defined in the module are ok.
  • Definition of access rules for all the models of the module

If you have run with the –enable-coverage option a .coverage file will be generated with the results and you can see the report executing:

$ coverage report

If your want to reuse the database you can use –no-dropdb and this will keep the database after running all the tests. Then you can make destral use this database exporting the environment variable OPENERP_DB_NAME=database_name

If you are running the destral in local environment with all the requirements installed and you want to speed up the tests you can use the option –no-requirements to skip the requirements installation.

Configuring destral

All the configuration can be made with environment variables with prefix DESTRAL_

Variables definition

DESTRAL_MODULE:
Module to test
DESTRAL_USE_TEMPLATE:
If we want to use a template when creating a database for test, if this variable is set to True a database with name base must exists and will be used to create a temporally database for this test.
DESTRAL_TESTING_LANGS:

The langs to be used while checking the translations of each module. This variable is mandatory as it should always be provided. The langs provided must always be in a Python formated list, such as:

export DESTRAL_TESTING_LANGS = [‘en_US’]

Configuring OpenERP

All configuration for OpenERP server can be made with environment variables with prefix OPENERP_ and will overwrite the defaults in tools.config.

Useful variables

OPENERP_DB_NAME:
A database to use, if this is set then the test framework assumes that the module is already installed and this database will not be deleted after the tests.
OPENERP_UPDATE:
If you want to update some modules during the initialization of OpenERP service Eg value: OPENERP_UPDATE={‘base’: 1, ‘crm’: 1}

Note

When developing is useful to have a database initialized and use OPENERP_DB_NAME variable to speed up the test.