# Tests

trytond.tests.test_tryton.DB_NAME

  The name of the database to use for testing. Its value is taken from the environment variable of the same name.

trytond.tests.test_tryton.USER

  The user id used to test the transactions

trytond.tests.test_tryton.CONTEXT

  The context used to test the transactions

trytond.tests.test_tryton.activate_module(name)

  Activate the named module for the tested database.

  In case database does not exist and the `DB_CACHE` environment variable is set then Tryton restores a backup found in the directory pointed by `DB_CACHE`. `DB_CACHE` can also be set to the value `postgresql://`, in that case Tryton create the database using the template found on the server. Otherwise it procees to the creation of the database and the activation of the module.

  `DB_CACHE_JOBS` environment variable defines the number of jobs used for dump and restore operations. The default value is the number of CPU.

## ModuleTestCase

class trytond.tests.test_tryton.ModuleTestCase

  A subclass of unittest.TestCase that tests a Tryton module. Some tests are included to ensure that the module works properly.

  It creates a temporary database with the module activated in setUpClass and drops it in the tearDownClass method.

ModuleTestCase.module

  Name of the tested module.

ModuleTestCase.extras

  A list of extra modules to activate

ModuleTestCase.language

  The language to activate. Default value is `en`.

## RouteTestCase

class trytond.tests.test_tryton.RouteTestCase

  A subclass of unittest.TestCase to test Tryton routes.

  It creates a temporary database with the module activated in setUpClass and drops it in the tearDownClass method.

RouteTestCase.module

  Name of the tested module.

RouteTestCase.extras

  A list of extra modules to activate

RouteTestCase.language

  The language to activate. Default value is `en`.

RouteTestCase.db_name

  Returns the name of the database

classmethod RouteTestCase.setUpDatabase()

  A method called by setUpClass after activating the modules in a `Transaction`. It is used to setup data in the database.

RouteTestCase.client()

  Return a client to simulate requests to the WSGI application.

## Helpers

trytond.tests.test_tryton.with_transaction(user=1, context=None)

  Return a decorator to run a test case inside a `Transaction`. It is rolled back and the cache cleared at the end of the test.

## doctest helpers

trytond.tests.test_tryton.doctest_setup()

  Prepare the run of the doctest by creating a database and dropping it beforehand if necessary. This function should be used as the `setUp` parameter.

  Deprecated since version 4.2: The `doctest_setup` function should not be used anymore to set up `DocFileSuite()`. New modules should use `activate_modules()` instead.

trytond.tests.test_tryton.doctest_teardown()

  Clean up after the run of the doctest by dropping the database. It should be used as `tearDown` parameter when creating a `DocFileSuite`.

trytond.tests.test_tryton.doctest_checker

  A specialized doctest checker to ensure the Python compatibility.

trytond.tests.test_tryton.load_doc_tests(name, path, loader, tests, pattern)

  An helper that follows the `load_tests` protocol to load as `DocTest` all `*.rst` files in `directory`, with the module `name` and the `path` to the module file from which the doc tests are registered. If a file with the same name but the extension `.json` exists, the test is registered for each globals defined in the JSON list.

trytond.tests.test_tryton.suite()

  A function returning a subclass of `unittest.TestSuite` that drops the database if it does not exist prior to the run of the tests.

## Tools

trytond.tests.tools.activate_modules(modules)

  Activate a list of `modules` for scenario based on proteus doctests.

trytond.tests.tools.set_user(user, config)

  Set the user of the `config` proteus connection to `user`.