runbot/runbot_merge/tests
Xavier Morel 76c4d24bf5 [IMP] runbot_merge: don't create unstaged stagings
Previously when splitting staging we'd create two never-staged
stagings. In a system where the stagings get deleted once done
with (succeeeded or failed) that's not really important, but now that
we want to keep stagings around inactive things get problematic as
this method gunks up the stagings table, plus the post-split stagings
would "steal" the original's batches, losing information (relation
between stagings and batches).

Replace these empty stagings with dedicated *split* objects. A batch
can belong to both a staging and a split, the split is deleted once a
new staging has been created from it.

Eventually we may want to make batches shared between stagings (so we
can track the entire history of a batch) but currently that's only
PR-level.
2018-09-03 13:16:36 +02:00
..
fake_github [IMP] runbot_merge: stop deleting batches & stagings 2018-09-03 13:16:36 +02:00
conftest.py [IMP] runbot_merge: pluginify github mock 2018-09-03 13:16:36 +02:00
local.py [IMP] runbot_merge: PR source branch/label handling 2018-09-03 13:16:36 +02:00
README.txt [ADD] runbot_merge: remote github plugin 2018-09-03 13:16:36 +02:00
remote.py [ADD] runbot_merge: webhook signature support 2018-09-03 13:16:36 +02:00
test_basic.py [IMP] runbot_merge: don't create unstaged stagings 2018-09-03 13:16:36 +02:00
test_multirepo.py [IMP] runbot_merge: don't create unstaged stagings 2018-09-03 13:16:36 +02:00

Execute this test suite using pytest.

The default mode is to run tests locally using mock objects in place of
github, see the docstring of remote.py for additional instructions to run
against github "actual".

Shared properties running tests, regardless of the github implementation:

* test should be run from the root of the runbot repository providing the
  name of this module aka ``pytest runbot_merge`` or
  ``python -mpytest runbot_merge``
* a database name to use must be provided using ``--db``, the database should
  not exist beforehand
* the addons path must be specified using ``--addons-path``, both "runbot" and
  the standard addons (odoo/addons) must be provided explicitly

See pytest's documentation for other options, I would recommend ``-rXs``,
``-v`` and ``--showlocals``.

When running "remote" tests as they take a very long time (hours) `-x`
(aka ``--maxfail=1``) and ``--ff`` (run previously failed first) is also
recommended unless e.g. you run the tests overnight.