pymongo async Validation Report¶
Generated 2026-07-16 — SecantusDB 0.5.4b234 vs pymongo f2103a95870a (vendor/pymongo-tests/test/asynchronous/).
Run uv run python -m invoke validate-pymongo-async to refresh. This is the async sibling of the headline pymongo gauge: it drives pymongo’s native AsyncMongoClient API (the async/await wire path that replaced Motor) over the same in-scope CRUD / cursor / change-stream / command-monitoring surface. A gap versus docs/validation-report.md means the async code path exercises something the sync path doesn’t.
Summary by test file¶
Test file |
Passed |
Failed |
Errored |
Skipped |
Total |
Pass rate |
|---|---|---|---|---|---|---|
|
33 |
1 |
0 |
4 |
38 |
97.1% |
|
97 |
0 |
0 |
58 |
155 |
100.0% |
|
16 |
0 |
0 |
0 |
16 |
100.0% |
|
85 |
2 |
0 |
4 |
91 |
97.7% |
|
7 |
0 |
0 |
0 |
7 |
100.0% |
|
22 |
0 |
0 |
14 |
36 |
100.0% |
|
31 |
0 |
0 |
7 |
38 |
100.0% |
|
3 |
0 |
0 |
0 |
3 |
100.0% |
|
4 |
0 |
0 |
0 |
4 |
100.0% |
|
301 |
0 |
0 |
185 |
486 |
100.0% |
|
56 |
4 |
0 |
12 |
72 |
93.3% |
|
51 |
0 |
0 |
0 |
51 |
100.0% |
|
35 |
0 |
0 |
1 |
36 |
100.0% |
|
18 |
0 |
0 |
2 |
20 |
100.0% |
|
3 |
1 |
0 |
2 |
6 |
75.0% |
|
6 |
0 |
0 |
0 |
6 |
100.0% |
|
9 |
1 |
0 |
20 |
30 |
90.0% |
|
16 |
0 |
0 |
5 |
21 |
100.0% |
|
92 |
0 |
0 |
172 |
264 |
100.0% |
|
38 |
0 |
0 |
5 |
43 |
100.0% |
Overall |
923 |
9 |
0 |
491 |
1423 |
99.0% |
Failures (9)¶
First 30 failure node-ids for manual triage:
vendor/pymongo-tests/test/asynchronous/test_bulk.py::AsyncTestBulk::test_numerous_inserts
vendor/pymongo-tests/test/asynchronous/test_collection.py::AsyncTestCollection::test_index_hashed
vendor/pymongo-tests/test/asynchronous/test_collection.py::AsyncTestCollection::test_index_text
vendor/pymongo-tests/test/asynchronous/test_cursor.py::TestCursor::test_maxtime_ms_message
vendor/pymongo-tests/test/asynchronous/test_cursor.py::TestCursor::test_to_list_csot_applied
vendor/pymongo-tests/test/asynchronous/test_cursor.py::TestCursor::test_where
vendor/pymongo-tests/test/asynchronous/test_cursor.py::TestRawBatchCursor::test_collation
vendor/pymongo-tests/test/asynchronous/test_logger.py::TestLogger::test_default_truncation_limit
vendor/pymongo-tests/test/asynchronous/test_read_preferences.py::TestMongosAndReadPreference::test_read_preference_hedge_deprecated
How this is generated¶
pymongo’s async tests are run unmodified. The submodule at vendor/pymongo-tests/ is checked out at the pinned upstream tag with zero local edits. The integration is entirely external: the shared pymongo_validation/plugin.py starts an embedded SecantusDBServer(host='127.0.0.1', port=0, storage_path=<fresh tempdir>) (real on-disk WiredTiger) before pymongo’s conftest is imported and writes the bound host/port into DB_IP + DB_PORT — the env vars pymongo’s helpers_shared.py reads at import time, which the async AsyncClientContext also resolves from. Pytest then runs the in-scope paths from pymongo_async_validation/include_paths.py under pytest-asyncio (asyncio_mode=auto).
Tests gated on replica-set / sharding / auth / TLS / encryption topology self-skip — those skips are honest gaps, not failures. The pass rate is a meaningful conformance number for SecantusDB’s behaviour under pymongo’s async driver, exercised the same way pymongo’s own CI exercises a real mongod.