|
41 | 41 | "tests/integration/", |
42 | 42 | ) |
43 | 43 |
|
| 44 | +# Most of these won't have coverage info because they're evaluated at |
| 45 | +# module load time and app warmup, before any per-test coverage context is active. |
| 46 | +# |
| 47 | +# Tracking a "startup" coverage context doesn't work: django.setup() |
| 48 | +# eagerly imports models, fields, validators, utils, etc. We also have |
| 49 | +# large dynamic __init__'s so a startup context would select nearly every |
| 50 | +# test. |
44 | 51 | FULL_SUITE_TRIGGERS: list[str | re.Pattern[str]] = [ |
45 | | - "src/sentry/testutils/pytest/sentry.py", |
| 52 | + re.compile(r"^src/sentry/testutils/pytest/"), |
| 53 | + re.compile(r"(^|/)conftest\.py$"), |
| 54 | + "src/sentry/runner/initializer.py", |
46 | 55 | "src/sentry/constants.py", |
47 | | - "pyproject.toml", |
| 56 | + # option defaults registered at startup via initialize_app() |
| 57 | + re.compile(r"^src/sentry/options/"), |
| 58 | + # feature flags registered via manager.add() at import time |
| 59 | + re.compile(r"^src/sentry/features/"), |
| 60 | + # signal definitions created at module level; receivers depend on these |
| 61 | + "src/sentry/signals.py", |
| 62 | + # signal handlers registered globally via initialize_receivers() |
| 63 | + re.compile(r"^src/sentry/receivers/"), |
| 64 | + # stdlib/third-party monkey-patches applied before Django setup |
| 65 | + re.compile(r"^src/sentry/monkey/"), |
| 66 | + # monkeypatches transaction.atomic for silo-aware DB routing |
| 67 | + re.compile(r"^src/sentry/silo/patches/"), |
| 68 | + # SiloRouter loaded via DATABASE_ROUTERS; affects every DB query |
| 69 | + "src/sentry/db/router.py", |
48 | 70 | "src/sentry/conf/server.py", |
49 | 71 | "src/sentry/web/urls.py", |
| 72 | + "pyproject.toml", |
| 73 | + "uv.lock", |
50 | 74 | re.compile(r"/migrations/\d{4}_[^/]+\.py$"), |
51 | 75 | ] |
52 | 76 |
|
|
0 commit comments