[IMP] tests: server-side Form and other tests features
closes odoo/documentation#3968 Related: odoo/enterprise#38858 Related: odoo/odoo#116779 Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
This commit is contained in:
parent
679504a05c
commit
4f3531f81b
@ -47,16 +47,16 @@ The test runner will simply run any test case, as described in the official
|
|||||||
`unittest documentation`_, but Odoo provides a number of utilities and helpers
|
`unittest documentation`_, but Odoo provides a number of utilities and helpers
|
||||||
related to testing Odoo content (modules, mainly):
|
related to testing Odoo content (modules, mainly):
|
||||||
|
|
||||||
.. autoclass:: odoo.tests.common.TransactionCase
|
.. autoclass:: odoo.tests.TransactionCase
|
||||||
:members: browse_ref, ref
|
:members: browse_ref, ref
|
||||||
|
|
||||||
.. autoclass:: odoo.tests.common.SingleTransactionCase
|
.. autoclass:: odoo.tests.SingleTransactionCase
|
||||||
:members: browse_ref, ref
|
:members: browse_ref, ref
|
||||||
|
|
||||||
.. autoclass:: odoo.tests.common.HttpCase
|
.. autoclass:: odoo.tests.HttpCase
|
||||||
:members: browse_ref, ref, url_open, browser_js
|
:members: browse_ref, ref, url_open, browser_js
|
||||||
|
|
||||||
.. autofunction:: odoo.tests.common.tagged
|
.. autofunction:: odoo.tests.tagged
|
||||||
|
|
||||||
By default, tests are run once right after the corresponding module has been
|
By default, tests are run once right after the corresponding module has been
|
||||||
installed. Test cases can also be configured to run after all modules have
|
installed. Test cases can also be configured to run after all modules have
|
||||||
@ -72,10 +72,10 @@ been installed, and not run right after the module installation::
|
|||||||
Page = self.env['website.page']
|
Page = self.env['website.page']
|
||||||
|
|
||||||
The most common situation is to use
|
The most common situation is to use
|
||||||
:class:`~odoo.tests.common.TransactionCase` and test a property of a model
|
:class:`~odoo.tests.TransactionCase` and test a property of a model
|
||||||
in each method::
|
in each method::
|
||||||
|
|
||||||
class TestModelA(common.TransactionCase):
|
class TestModelA(TransactionCase):
|
||||||
def test_some_action(self):
|
def test_some_action(self):
|
||||||
record = self.env['model.a'].create({'field': 'value'})
|
record = self.env['model.a'].create({'field': 'value'})
|
||||||
record.some_action()
|
record.some_action()
|
||||||
@ -89,13 +89,13 @@ in each method::
|
|||||||
|
|
||||||
Test methods must start with ``test_``
|
Test methods must start with ``test_``
|
||||||
|
|
||||||
.. autoclass:: odoo.tests.common.Form
|
.. autoclass:: odoo.tests.Form
|
||||||
:members:
|
:members:
|
||||||
|
|
||||||
.. autoclass:: odoo.tests.common.M2MProxy
|
.. autoclass:: odoo.tests.M2MProxy
|
||||||
:members: add, remove, clear
|
:members: add, remove, clear
|
||||||
|
|
||||||
.. autoclass:: odoo.tests.common.O2MProxy
|
.. autoclass:: odoo.tests.O2MProxy
|
||||||
:members: new, edit, remove
|
:members: new, edit, remove
|
||||||
|
|
||||||
Running tests
|
Running tests
|
||||||
@ -115,9 +115,9 @@ Test selection
|
|||||||
In Odoo, Python tests can be tagged to facilitate the test selection when
|
In Odoo, Python tests can be tagged to facilitate the test selection when
|
||||||
running tests.
|
running tests.
|
||||||
|
|
||||||
Subclasses of :class:`odoo.tests.common.BaseCase` (usually through
|
Subclasses of :class:`odoo.tests.BaseCase` (usually through
|
||||||
:class:`~odoo.tests.common.TransactionCase` or
|
:class:`~odoo.tests.TransactionCase` or
|
||||||
:class:`~odoo.tests.common.HttpCase`) are automatically tagged with
|
:class:`~odoo.tests.HttpCase`) are automatically tagged with
|
||||||
``standard`` and ``at_install`` by default.
|
``standard`` and ``at_install`` by default.
|
||||||
|
|
||||||
Invocation
|
Invocation
|
||||||
@ -132,12 +132,12 @@ This option defaults to ``+standard`` meaning tests tagged ``standard``
|
|||||||
(explicitly or implicitly) will be run by default when starting Odoo
|
(explicitly or implicitly) will be run by default when starting Odoo
|
||||||
with :option:`--test-enable <odoo-bin --test-enable>`.
|
with :option:`--test-enable <odoo-bin --test-enable>`.
|
||||||
|
|
||||||
When writing tests, the :func:`~odoo.tests.common.tagged` decorator can be
|
When writing tests, the :func:`~odoo.tests.tagged` decorator can be
|
||||||
used on **test classes** to add or remove tags.
|
used on **test classes** to add or remove tags.
|
||||||
|
|
||||||
The decorator's arguments are tag names, as strings.
|
The decorator's arguments are tag names, as strings.
|
||||||
|
|
||||||
.. danger:: :func:`~odoo.tests.common.tagged` is a class decorator, it has no
|
.. danger:: :func:`~odoo.tests.tagged` is a class decorator, it has no
|
||||||
effect on functions or methods
|
effect on functions or methods
|
||||||
|
|
||||||
Tags can be prefixed with the minus (``-``) sign, to *remove* them instead of
|
Tags can be prefixed with the minus (``-``) sign, to *remove* them instead of
|
||||||
@ -180,7 +180,7 @@ ones:
|
|||||||
$ odoo-bin --test-tags 'standard,-slow'
|
$ odoo-bin --test-tags 'standard,-slow'
|
||||||
|
|
||||||
When you write a test that does not inherit from the
|
When you write a test that does not inherit from the
|
||||||
:class:`~odoo.tests.common.BaseCase`, this test will not have the default tags,
|
:class:`~odoo.tests.BaseCase`, this test will not have the default tags,
|
||||||
you have to add them explicitly to have the test included in the default test
|
you have to add them explicitly to have the test included in the default test
|
||||||
suite. This is a common issue when using a simple ``unittest.TestCase`` as
|
suite. This is a common issue when using a simple ``unittest.TestCase`` as
|
||||||
they're not going to get run:
|
they're not going to get run:
|
||||||
@ -230,7 +230,7 @@ Special tags
|
|||||||
~~~~~~~~~~~~
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
- ``standard``: All Odoo tests that inherit from
|
- ``standard``: All Odoo tests that inherit from
|
||||||
:class:`~odoo.tests.common.BaseCase` are implicitly tagged standard.
|
:class:`~odoo.tests.BaseCase` are implicitly tagged standard.
|
||||||
:option:`--test-tags <odoo-bin --test-tags>` also defaults to ``standard``.
|
:option:`--test-tags <odoo-bin --test-tags>` also defaults to ``standard``.
|
||||||
|
|
||||||
That means untagged test will be executed by default when tests are enabled.
|
That means untagged test will be executed by default when tests are enabled.
|
||||||
@ -715,7 +715,7 @@ Python
|
|||||||
~~~~~~
|
~~~~~~
|
||||||
|
|
||||||
To start a tour from a python test, make the class inherit from
|
To start a tour from a python test, make the class inherit from
|
||||||
:class:`~odoo.tests.common.HTTPCase`, and call `start_tour`:
|
:class:`~odoo.tests.HTTPCase`, and call `start_tour`:
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
@ -858,7 +858,7 @@ Query counts
|
|||||||
|
|
||||||
One of the ways to test performance is to measure database queries. Manually, this can be tested with the
|
One of the ways to test performance is to measure database queries. Manually, this can be tested with the
|
||||||
`--log-sql` CLI parameter. If you want to establish the maximum number of queries for an operation,
|
`--log-sql` CLI parameter. If you want to establish the maximum number of queries for an operation,
|
||||||
you can use the :meth:`~odoo.tests.common.BaseCase.assertQueryCount` method, integrated in Odoo test classes.
|
you can use the :meth:`~odoo.tests.BaseCase.assertQueryCount` method, integrated in Odoo test classes.
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user