Skip to content

Integration tests

Why is this needed?

A run on a live instance checks the main Backend scenarios. The log shows what works, and that log can be attached to an issue

Run

Available only to an Administrator.

  1. Click the Domain node on the home page
  2. Click Integration Tests
  3. In Operation Tasks wait for Success or Error

The same run is available in the Telegram Bot via the /control command. There is no cooldown between runs. While tests are running, the public instance state shows Running.

Result

In Operation Tasks open the Integration Tests row and the icon in the Result column. The Task Result modal shows the full pytest log; you can copy it.

The Backend takes a short summary from the final line, for example total 241, passed 231, skipped 10, failed 0, error 0 in 174.21s. The success percentage (passed + xpassed) / executed * 100 is written to the public instance state.

StatusMeaning
RunningStill running
Successpytest finished with exit code 0
WarningThe task failed, but some tests passed
ErrorThe run failed or the percentage cannot be parsed

This status and percentage are visible to everyone: the Tests column in Instances, the Identity block in the instance card, and the state.integration_tests_* fields in GET /pepeunit/api/v1/instances/current. Trusted neighbors take the same state when polling.

INFO

If tests have not been run for a long time, the fields in /current are empty. Diagnosis needs a fresh run

How to attach to an issue

  1. Copy the log from Task Result
  2. Paste it into an issue in the relevant repository: Backend, Frontend, Documentation. The repository list is on the map

Variables

The tests read Backend ENV. Disabled PU_FF_* flags remove the related scenarios from the run. PU_TEST_INTEGRATION_CLEAR_DATA=False keeps test data for manual inspection.

INFO

Defaults, ranges, and a console run are described in Backend integration tests