utils/crdt-sync/crdt_sync/tests
Krzysztof kuhy Rudnicki 11fc417556 Cover tool/preflight_firebase.py at 100% branch
Fourth module of the tool/ coverage task, and the first of the four large
ones. Split into checks and loaders/main() up front rather than discovering
the 250-line cap afterwards -- 245 and 225 lines.

Every check is asserted on its *message*, not merely on having raised. The
whole reason this tool exists is that the misconfigurations it catches are
indistinguishable once data has started moving, so a check firing with the
wrong explanation sends the reader to the wrong place. That includes the
wrong-region 404, which answers with a correctUrl body rather than an error
and would otherwise pass preflight, pass sign-in against a different host
entirely, and only break mid-migration.

main()'s stated contract is pinned too: cheapest-first ordering, and that it
short-circuits -- a typo must be reported without a network round trip, so
the later network checks must not run at all.

The module's config paths are module-level constants pointing into the real
~/.config/crdt-sync, so the fixture redirecting them at tmp_path is autouse:
a test that forgot it would read and report on the user's actual credentials.
Confirmed afterwards that ~/.config/crdt-sync was not touched.

crdt_sync 293 -> 333 passed, still 100%. 4 of 7 tool/ modules done.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CFSGeWxHPY5rHUGrPqhcmG
2026-08-22 16:38:13 +02:00
..
__init__.py Initial implementation: unified CRDT merge scheme + GitHub sync transport 2026-07-05 20:40:09 +02:00
conftest.py Group sync_log's 11 arguments into three bundles 2026-08-21 14:22:25 +02:00
test_config_client.py Fix the cap hook in CI, and the re-exports its --all-files run exposed 2026-08-22 15:52:59 +02:00
test_config_credentials.py crdt-sync: split seven oversized test files by test group 2026-08-22 14:47:58 +02:00
test_config.py crdt-sync: split seven oversized test files by test group 2026-08-22 14:47:58 +02:00
test_device.py Add DeviceIdentity and a legacy device id for the uuid migration 2026-08-09 16:54:33 +02:00
test_firebase_auth_google.py Fix the cap hook in CI, and the re-exports its --all-files run exposed 2026-08-22 15:52:59 +02:00
test_firebase_auth_session.py Fix the cap hook in CI, and the re-exports its --all-files run exposed 2026-08-22 15:52:59 +02:00
test_firebase_auth_tokens.py Fix the cap hook in CI, and the re-exports its --all-files run exposed 2026-08-22 15:52:59 +02:00
test_firebase_auth.py crdt-sync: split seven oversized test files by test group 2026-08-22 14:47:58 +02:00
test_firebase_writes.py Fix the cap hook in CI, and the re-exports its --all-files run exposed 2026-08-22 15:52:59 +02:00
test_firebase.py crdt-sync: split seven oversized test files by test group 2026-08-22 14:47:58 +02:00
test_github_writes.py Fix the cap hook in CI, and the re-exports its --all-files run exposed 2026-08-22 15:52:59 +02:00
test_github.py crdt-sync: split seven oversized test files by test group 2026-08-22 14:47:58 +02:00
test_hlc.py Document every test, taking pylint from 8.58 to 9.90 2026-08-21 14:10:23 +02:00
test_log.py Document every test, taking pylint from 8.58 to 9.90 2026-08-21 14:10:23 +02:00
test_mirror_fallback.py Fix the cap hook in CI, and the re-exports its --all-files run exposed 2026-08-22 15:52:59 +02:00
test_mirror.py crdt-sync: split seven oversized test files by test group 2026-08-22 14:47:58 +02:00
test_record.py Group sync_log's 11 arguments into three bundles 2026-08-21 14:22:25 +02:00
test_store.py Document every test, taking pylint from 8.58 to 9.90 2026-08-21 14:10:23 +02:00
test_sync_revisions_backends.py Fix the cap hook in CI, and the re-exports its --all-files run exposed 2026-08-22 15:52:59 +02:00
test_sync_revisions_peers.py Fix the cap hook in CI, and the re-exports its --all-files run exposed 2026-08-22 15:52:59 +02:00
test_sync_revisions.py crdt-sync: split seven oversized test files by test group 2026-08-22 14:47:58 +02:00
test_sync_skips.py Fix the cap hook in CI, and the re-exports its --all-files run exposed 2026-08-22 15:52:59 +02:00
test_sync.py crdt-sync: split seven oversized test files by test group 2026-08-22 14:47:58 +02:00
test_tool_google_id_token_cli.py Apply the ruff fix CI's --unsafe-fixes run wanted 2026-08-22 16:34:27 +02:00
test_tool_google_id_token.py Cover tool/google_id_token.py at 100% branch 2026-08-22 16:32:08 +02:00
test_tool_interop_seed.py Cover tool/interop_seed.py at 100% branch 2026-08-22 16:35:40 +02:00
test_tool_oauth_callback.py Cover tool/google_id_token.py at 100% branch 2026-08-22 16:32:08 +02:00
test_tool_preflight_firebase_main.py Cover tool/preflight_firebase.py at 100% branch 2026-08-22 16:38:13 +02:00
test_tool_preflight_firebase.py Cover tool/preflight_firebase.py at 100% branch 2026-08-22 16:38:13 +02:00