mirror of
https://github.com/odoo/runbot.git
synced 2025-03-19 09:25:46 +07:00
![]() Before this change, when staging batches only affecting one repo (of n) the unaffected repositories would get a staging branch exactly matching the target. As a result, either runbot_merge or runbot would simply return the result of an unrelated build, potentially providing incorrect information and either failing a staging which should have succeeded (e.g. change in repo A broke B, PR is making a change in repo A which fixes B, but B's state is reported as the previous broken build) or succeeding a staging which should have failed (change in repo A breaking B except a previous build of the exact same B succeeded with a different A and is returned). To fix this issue, create a dummy commit at the head of each staging branch. Because commit dates are included in the hash and have a second precision it's pretty unlikely that we can get built duplicates, but just to be completely sure some random bits are added to the commit message as well. Various tests fixed to correctly handle the extra dummy commit on staging branches. fixes #35 |
||
---|---|---|
.. | ||
fake_github | ||
conftest.py | ||
local.py | ||
README.rst | ||
remote.py | ||
test_basic.py | ||
test_multirepo.py | ||
test_utils.py |
Execute this test suite using pytest. The default mode is to run tests locally using a mock github.com. See the docstring of remote.py for instructions to run against github "actual" (including remote-specific options) and the end of this file for a sample. 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. ``pytest.ini`` sample --------------------- .. code:: ini [github] owner = test-org token = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa [role_reviewer] name = Dick Bong user = loginb token = bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb [role_self_reviewer] name = Fanny Chmelar user = loginc token = cccccccccccccccccccccccccccccccccccccccc [role_other] name = Harry Baals user = logind token = dddddddddddddddddddddddddddddddddddddddd