runbot/runbot_merge/tests
Xavier Morel c67bb64537 [ADD] *: fw=skipmerge
Skipmerge creates forward-ports before the source PR is even merged.

- In a break from the norm, skipmerge will create forwardports even in
  the face of conflicts.
- It will also not *detach* pull requests in case of conflicts, this
  is so the source PR can be updated and the update correctly cascades
  through the stack (likewise for any intermediate PR though *that*
  will detach as usual).

Note that this doesn't really look at outstandings, especially as they
were recently updated, so it might need to be fixed up in case of
freakout, but I feel like that should not be too much of an issue, the
authors will just get their FW reminders earlier than usual. If that's
a hassle we can always update the reminder job to ignore forward ports
whose source is not merged I guess.

Fixes #418
2025-02-04 08:05:15 +01:00
..
conftest.py [FIX] runbot_merge: project fixture 2025-01-28 15:13:47 +01:00
README.rst [IMP] runbot_merge: test readme & remove leftover pass 2018-09-03 13:16:36 +02:00
test_basic.py [ADD] *: fw=skipmerge 2025-02-04 08:05:15 +01:00
test_batch_consistency.py [IMP] runbot_merge: a PR can't be reopened if its batch is merged 2024-12-09 16:02:28 +01:00
test_by_branch.py [IMP] runbot_merge: minor simplification of test_by_branch 2024-12-09 16:02:28 +01:00
test_dfm.py [ADD] runbot_merge: rendering of PR descriptions 2024-07-15 10:28:28 +02:00
test_disabled_branch.py [IMP] *: modernise tests via to_pr 2024-12-02 16:32:53 +01:00
test_multirepo.py [FIX] project creation: handling of mergebot info 2024-12-02 16:32:53 +01:00
test_nondeterministic_failures.py [ADD] runbot_merge: basic support for false positive detection 2024-12-09 16:02:28 +01:00
test_oddities.py [ADD] *: fw=skipmerge 2025-02-04 08:05:15 +01:00
test_patching.py [ADD] runbot_merge: support for file creation in patch 2025-01-29 13:29:53 +01:00
test_project_toggles.py [IMP] *: trigger-ify staging cron 2024-08-02 15:14:50 +02:00
test_provisioning.py [IMP] runbot_merge: rework (de)provisioning 2025-01-28 16:11:14 +01:00
test_staging.py [FIX] *: unstage on status going from success to failure 2024-09-18 15:19:13 +02:00
test_status_overrides.py [IMP] *: modernise tests via to_pr 2024-12-02 16:32:53 +01:00

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