pymongo Validation Report (Rust server)

Generated 2026-06-15 — SecantusDB 0.5.3b6 vs pymongo f2103a95870a (vendor/pymongo-tests/).

Run uv run python -m invoke validate --server rust to refresh. This is the R8 conformance gate from tasks/rust-server-plan.md: the same unmodified pymongo suite the headline gauge runs, pointed at the Rust server instead of the pure-Python one. The gap between this pass rate and docs/validation-report.md is the Rust server’s remaining to-do list.

Summary by category

Category

Passed

Failed

Errored

Skipped

Total

Pass rate

test_binary.py

29

0

0

0

29

100.0%

test_bulk.py

31

3

0

4

38

91.2%

test_change_stream.py

78

28

0

49

155

73.6%

test_collation.py

16

0

0

0

16

100.0%

test_collection.py

75

12

0

4

91

86.2%

test_collection_management.py

4

3

0

0

7

57.1%

test_command_logging.py

22

0

0

14

36

100.0%

test_command_monitoring.py

30

1

0

7

38

96.8%

test_comment.py

3

0

0

0

3

100.0%

test_common.py

4

0

0

0

4

100.0%

test_crud_unified.py

286

15

0

185

486

95.0%

test_crud_v1.py

14

0

0

0

14

100.0%

test_cursor.py

55

12

0

5

72

82.1%

test_custom_types.py

46

5

0

0

51

90.2%

test_database.py

30

5

0

1

36

85.7%

test_decimal128.py

4

0

0

0

4

100.0%

test_examples.py

12

6

0

2

20

66.7%

test_logger.py

4

0

0

2

6

100.0%

test_operations.py

2

0

0

0

2

100.0%

test_raw_bson.py

13

1

0

0

14

92.9%

test_read_concern.py

6

0

0

0

6

100.0%

test_read_preferences.py

9

0

0

20

29

100.0%

test_results.py

5

0

0

0

5

100.0%

test_run_command.py

15

1

0

5

21

93.8%

test_transactions_unified.py

69

26

0

172

267

72.6%

test_versioned_api.py

4

0

0

0

4

100.0%

test_versioned_api_integration.py

37

1

0

5

43

97.4%

test_write_concern.py

6

0

0

0

6

100.0%

Overall

909

119

0

475

1503

88.4%

Failures (119)

First 30 failure node-ids for manual triage:

vendor/pymongo-tests/test/test_bulk.py::TestBulk::test_large_inserts_ordered
vendor/pymongo-tests/test/test_bulk.py::TestBulk::test_large_inserts_unordered
vendor/pymongo-tests/test/test_bulk.py::TestBulk::test_upsert_uuid_standard_subdocuments
vendor/pymongo-tests/test/test_change_stream.py::TestCollectionChangeStream::test_raises_error_on_missing_id_418plus
vendor/pymongo-tests/test/test_change_stream.py::TestCollectionChangeStream::test_read_concern
vendor/pymongo-tests/test/test_change_stream.py::TestCollectionChangeStream::test_resumetoken_uniterated_nonempty_batch_resumeafter
vendor/pymongo-tests/test/test_change_stream.py::TestCollectionChangeStream::test_resumetoken_uniterated_nonempty_batch_startafter
vendor/pymongo-tests/test/test_change_stream.py::TestCollectionChangeStream::test_split_large_change
vendor/pymongo-tests/test/test_change_stream.py::TestCollectionChangeStream::test_start_after
vendor/pymongo-tests/test/test_change_stream.py::TestCollectionChangeStream::test_update_resume_token
vendor/pymongo-tests/test/test_change_stream.py::TestDatabaseChangeStream::test_start_after
vendor/pymongo-tests/test/test_change_stream.py::TestDatabaseChangeStream::test_start_after_resume_process_with_changes
vendor/pymongo-tests/test/test_change_stream.py::TestDatabaseChangeStream::test_start_after_resume_process_without_changes
vendor/pymongo-tests/test/test_change_stream.py::TestUnifiedChangeStreams::test_Change_Stream_should_allow_valid_aggregate_pipeline_stages
vendor/pymongo-tests/test/test_change_stream.py::TestUnifiedChangeStreams::test_Test_modified_structure_in_ns_document_MUST_NOT_err
vendor/pymongo-tests/test/test_change_stream.py::TestUnifiedChangeStreams::test_Test_newField_added_in_response_MUST_NOT_err
vendor/pymongo-tests/test/test_change_stream.py::TestUnifiedChangeStreams::test_Test_new_structure_in_ns_document_MUST_NOT_err
vendor/pymongo-tests/test/test_change_stream.py::TestUnifiedChangeStreams::test_Test_projection_in_change_stream_returns_expected_fields
vendor/pymongo-tests/test/test_change_stream.py::TestUnifiedChangeStreams::test_Test_server_error_on_projecting_out__id
vendor/pymongo-tests/test/test_change_stream.py::TestUnifiedChangeStreams::test_Test_unknown_operationType_MUST_NOT_err
vendor/pymongo-tests/test/test_change_stream.py::TestUnifiedChangeStreamsErrors::test_Change_Stream_should_error_when__id_is_projected_out
vendor/pymongo-tests/test/test_change_stream.py::TestUnifiedChangeStreamsErrors::test_Change_Stream_should_error_when_an_invalid_aggregation_stage_is_passed_in
vendor/pymongo-tests/test/test_change_stream.py::TestUnifiedChangeStreamsPreAndPostImages::test_fullDocument:required_with_changeStreamPreAndPostImages_disabled
vendor/pymongo-tests/test/test_change_stream.py::TestUnifiedChangeStreamsPreAndPostImages::test_fullDocument:whenAvailable_with_changeStreamPreAndPostImages_disabled
vendor/pymongo-tests/test/test_change_stream.py::TestUnifiedChangeStreamsPreAndPostImages::test_fullDocumentBeforeChange:required_with_changeStreamPreAndPostImages_disabled
vendor/pymongo-tests/test/test_change_stream.py::TestUnifiedChangeStreamsShowExpandedEvents::test_when_showExpandedEvents_is_true,_createIndex_events_are_reported
vendor/pymongo-tests/test/test_change_stream.py::TestUnifiedChangeStreamsShowExpandedEvents::test_when_showExpandedEvents_is_true,_create_events_are_reported
vendor/pymongo-tests/test/test_change_stream.py::TestUnifiedChangeStreamsShowExpandedEvents::test_when_showExpandedEvents_is_true,_create_events_on_views_are_reported
vendor/pymongo-tests/test/test_change_stream.py::TestUnifiedChangeStreamsShowExpandedEvents::test_when_showExpandedEvents_is_true,_dropIndexes_events_are_reported
vendor/pymongo-tests/test/test_change_stream.py::TestUnifiedChangeStreamsShowExpandedEvents::test_when_showExpandedEvents_is_true,_modify_events_are_reported

… and 89 more (see raw JSON).

How this is generated

pymongo’s tests are run unmodified. The submodule at vendor/pymongo-tests/ is checked out at the pinned upstream tag with zero local edits — git diff HEAD inside the submodule is empty. The integration is entirely external: pymongo_validation/plugin.py starts an embedded Rust server (_secantus_server.RustServer(storage_path=<fresh tempdir>, port=0) — the in-process Rust accept loop over the pure-Rust engines and WiredTiger-backed storage; Python is only the launcher) (real on-disk WiredTiger via tempfile.mkdtemp(prefix='secantus-pymongo-gauge-'), not :memory:) in pytest_configure and writes the bound host/port into DB_IP + DB_PORT — the env vars pymongo’s own helpers_shared.py reads at import time. Pytest then collects and runs the in-scope test paths defined in pymongo_validation/include_paths.py.

Tests gated on replica-set / sharding / auth / TLS / encryption topology self-skip — those skips are honest gaps, not failures. The pass rate above is therefore a meaningful conformance number: those are pymongo’s actual tests, exercising SecantusDB the same way they exercise a real mongod in pymongo’s CI.