The test runner walks link-field dependencies recursively to pre-generate
test records via `get_missing_records_doctypes`. If any DocType in the
transitive link graph belonged to an app not installed on the test site,
the walk crashed with `DoesNotExistError`, aborting the entire suite
before a single test ran.
Treat such link targets as dead-end leaves instead:
- `get_modules` now returns `(None, None)` when the DocType row does not
exist, instead of falling through into `load_doctype_module` which
raises.
- `get_missing_records_doctypes` checks for `module is None`, logs a
warning naming the parent DocType that linked to it, and returns
without descending further.
This restores the ability to run downstream test suites that link
(directly or transitively) to optional/uninstalled apps without forcing
every CI environment to know the full transitive link graph.
Fixes#38747
* chore: remove verbose output from test runner
This is same output that's shared by test runner in different format?
This makes it annoying to scroll through when just running single test
locally.
* fix: Remove clutter from test output
Test records don't change after first run.
Tests are executed many many times locally
* test: retry flaky postgres backup tests
- Add reset option to clear existing test objects
- Clearly distinguishe between index doctype and record doctype
- Optimize record retrieval from test log, fix record pool layout
- Implement removal of doctype records from test log
- Enhance logging with record count information
* chore: improve log record of testing command invokation
* chore(testing): narrower specificacion of the persistence log
* fix(testing): append raw record source data to globalTestRecords
- Rename functions for clarity
- Enhance logging with more detailed messages
- Refactor record creation process for better organization
- Improve handling of record synchronization and caching
* refactor: toml test records for readability
* fix: maintain backwards compatibility
* refactor: transform in-tree records
* chore: don't use deprecated functions (treewide)
* chore: revert migration of tests which depend on old test records list
* feat: add cls.globalTestRecords on IntegrationTestCase