mongo 2.13.0 → 2.15.0.alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +1 -4
- data.tar.gz.sig +0 -0
- data/README.md +4 -1
- data/Rakefile +46 -18
- data/lib/mongo.rb +32 -0
- data/lib/mongo/address.rb +1 -1
- data/lib/mongo/address/ipv4.rb +1 -1
- data/lib/mongo/address/ipv6.rb +1 -1
- data/lib/mongo/auth/aws/conversation.rb +1 -4
- data/lib/mongo/auth/base.rb +13 -7
- data/lib/mongo/auth/conversation_base.rb +32 -0
- data/lib/mongo/auth/cr/conversation.rb +6 -29
- data/lib/mongo/auth/gssapi/conversation.rb +4 -15
- data/lib/mongo/auth/ldap/conversation.rb +3 -14
- data/lib/mongo/auth/sasl_conversation_base.rb +1 -13
- data/lib/mongo/auth/scram_conversation_base.rb +7 -34
- data/lib/mongo/auth/user/view.rb +16 -9
- data/lib/mongo/auth/x509/conversation.rb +4 -25
- data/lib/mongo/background_thread.rb +11 -0
- data/lib/mongo/bulk_write.rb +38 -18
- data/lib/mongo/caching_cursor.rb +74 -0
- data/lib/mongo/client.rb +142 -16
- data/lib/mongo/cluster.rb +22 -31
- data/lib/mongo/cluster/reapers/cursor_reaper.rb +6 -2
- data/lib/mongo/cluster/sdam_flow.rb +14 -0
- data/lib/mongo/cluster/topology/single.rb +1 -1
- data/lib/mongo/collection.rb +58 -18
- data/lib/mongo/collection/view.rb +24 -20
- data/lib/mongo/collection/view/aggregation.rb +26 -5
- data/lib/mongo/collection/view/builder/find_command.rb +38 -18
- data/lib/mongo/collection/view/change_stream.rb +1 -1
- data/lib/mongo/collection/view/explainable.rb +27 -8
- data/lib/mongo/collection/view/iterable.rb +73 -13
- data/lib/mongo/collection/view/map_reduce.rb +2 -2
- data/lib/mongo/collection/view/readable.rb +57 -21
- data/lib/mongo/collection/view/writable.rb +29 -15
- data/lib/mongo/crypt/encryption_io.rb +6 -6
- data/lib/mongo/cursor.rb +18 -5
- data/lib/mongo/database.rb +28 -5
- data/lib/mongo/database/view.rb +2 -2
- data/lib/mongo/error.rb +11 -1
- data/lib/mongo/error/bulk_write_error.rb +17 -3
- data/lib/mongo/error/internal_driver_error.rb +22 -0
- data/lib/mongo/error/invalid_read_concern.rb +28 -0
- data/lib/mongo/error/operation_failure.rb +26 -7
- data/lib/mongo/error/parser.rb +65 -12
- data/lib/mongo/error/server_api_conflict.rb +23 -0
- data/lib/mongo/error/server_api_not_supported.rb +24 -0
- data/lib/mongo/error/server_certificate_revoked.rb +22 -0
- data/lib/mongo/error/unmet_dependency.rb +21 -0
- data/lib/mongo/error/unsupported_option.rb +14 -12
- data/lib/mongo/grid/fs_bucket.rb +37 -37
- data/lib/mongo/index/view.rb +21 -11
- data/lib/mongo/lint.rb +2 -1
- data/lib/mongo/logger.rb +3 -3
- data/lib/mongo/monitoring.rb +13 -4
- data/lib/mongo/monitoring/event/server_heartbeat_failed.rb +27 -16
- data/lib/mongo/monitoring/event/server_heartbeat_succeeded.rb +26 -15
- data/lib/mongo/operation.rb +4 -2
- data/lib/mongo/operation/aggregate/result.rb +9 -8
- data/lib/mongo/operation/collections_info.rb +18 -1
- data/lib/mongo/operation/collections_info/command.rb +5 -0
- data/lib/mongo/operation/collections_info/result.rb +18 -1
- data/lib/mongo/operation/context.rb +99 -0
- data/lib/mongo/operation/delete/bulk_result.rb +2 -0
- data/lib/mongo/operation/delete/result.rb +3 -0
- data/lib/mongo/operation/explain/command.rb +4 -0
- data/lib/mongo/operation/explain/legacy.rb +4 -0
- data/lib/mongo/operation/explain/op_msg.rb +6 -0
- data/lib/mongo/operation/explain/result.rb +3 -0
- data/lib/mongo/operation/find/legacy/result.rb +2 -0
- data/lib/mongo/operation/find/result.rb +13 -0
- data/lib/mongo/operation/get_more/result.rb +3 -0
- data/lib/mongo/operation/indexes.rb +15 -1
- data/lib/mongo/operation/indexes/result.rb +5 -0
- data/lib/mongo/operation/insert/bulk_result.rb +5 -0
- data/lib/mongo/operation/insert/command.rb +2 -2
- data/lib/mongo/operation/insert/legacy.rb +2 -2
- data/lib/mongo/operation/insert/op_msg.rb +2 -2
- data/lib/mongo/operation/insert/result.rb +5 -0
- data/lib/mongo/operation/list_collections/result.rb +9 -1
- data/lib/mongo/operation/map_reduce/result.rb +10 -0
- data/lib/mongo/operation/parallel_scan/result.rb +4 -0
- data/lib/mongo/operation/result.rb +37 -6
- data/lib/mongo/operation/shared/bypass_document_validation.rb +1 -0
- data/lib/mongo/operation/shared/causal_consistency_supported.rb +1 -0
- data/lib/mongo/operation/shared/executable.rb +25 -14
- data/lib/mongo/operation/shared/executable_no_validate.rb +2 -2
- data/lib/mongo/operation/shared/idable.rb +2 -1
- data/lib/mongo/operation/shared/limited.rb +1 -0
- data/lib/mongo/operation/shared/object_id_generator.rb +1 -0
- data/lib/mongo/operation/shared/op_msg_or_command.rb +1 -7
- data/lib/mongo/operation/shared/op_msg_or_find_command.rb +1 -7
- data/lib/mongo/operation/shared/polymorphic_operation.rb +39 -0
- data/lib/mongo/operation/shared/response_handling.rb +23 -23
- data/lib/mongo/operation/shared/result/aggregatable.rb +1 -0
- data/lib/mongo/operation/shared/sessions_supported.rb +14 -2
- data/lib/mongo/operation/shared/specifiable.rb +1 -0
- data/lib/mongo/operation/shared/write.rb +9 -18
- data/lib/mongo/operation/shared/write_concern_supported.rb +1 -0
- data/lib/mongo/operation/update/legacy/result.rb +7 -0
- data/lib/mongo/operation/update/result.rb +8 -0
- data/lib/mongo/operation/users_info/result.rb +3 -0
- data/lib/mongo/protocol/compressed.rb +51 -5
- data/lib/mongo/protocol/message.rb +31 -4
- data/lib/mongo/protocol/msg.rb +37 -12
- data/lib/mongo/protocol/query.rb +36 -0
- data/lib/mongo/query_cache.rb +272 -0
- data/lib/mongo/retryable.rb +9 -2
- data/lib/mongo/server.rb +12 -16
- data/lib/mongo/server/app_metadata.rb +52 -18
- data/lib/mongo/server/connection.rb +5 -0
- data/lib/mongo/server/connection_base.rb +16 -15
- data/lib/mongo/server/connection_common.rb +2 -2
- data/lib/mongo/server/connection_pool.rb +9 -4
- data/lib/mongo/server/description.rb +12 -1
- data/lib/mongo/server/description/features.rb +9 -8
- data/lib/mongo/server/monitor.rb +21 -2
- data/lib/mongo/server/monitor/app_metadata.rb +1 -1
- data/lib/mongo/server/monitor/connection.rb +12 -13
- data/lib/mongo/server/pending_connection.rb +26 -8
- data/lib/mongo/server/push_monitor.rb +12 -2
- data/lib/mongo/server_selector/base.rb +5 -1
- data/lib/mongo/session.rb +7 -3
- data/lib/mongo/session/session_pool.rb +4 -2
- data/lib/mongo/socket.rb +35 -8
- data/lib/mongo/socket/ocsp_cache.rb +97 -0
- data/lib/mongo/socket/ocsp_verifier.rb +368 -0
- data/lib/mongo/socket/ssl.rb +53 -24
- data/lib/mongo/srv/monitor.rb +7 -24
- data/lib/mongo/srv/resolver.rb +14 -10
- data/lib/mongo/timeout.rb +2 -0
- data/lib/mongo/uri.rb +21 -390
- data/lib/mongo/uri/options_mapper.rb +620 -0
- data/lib/mongo/uri/srv_protocol.rb +3 -2
- data/lib/mongo/utils.rb +27 -1
- data/lib/mongo/version.rb +1 -1
- data/spec/NOTES.aws-auth.md +12 -7
- data/spec/README.md +87 -2
- data/spec/integration/auth_spec.rb +25 -15
- data/spec/integration/bson_symbol_spec.rb +4 -2
- data/spec/integration/bulk_write_error_message_spec.rb +41 -0
- data/spec/integration/bulk_write_spec.rb +48 -0
- data/spec/integration/change_stream_spec.rb +5 -5
- data/spec/integration/client_authentication_options_spec.rb +92 -28
- data/spec/integration/client_side_encryption/auto_encryption_bulk_writes_spec.rb +6 -2
- data/spec/integration/command_monitoring_spec.rb +2 -2
- data/spec/integration/connection_pool_populator_spec.rb +4 -2
- data/spec/integration/connection_spec.rb +2 -0
- data/spec/integration/cursor_reaping_spec.rb +54 -18
- data/spec/integration/docs_examples_spec.rb +8 -1
- data/spec/integration/fork_reconnect_spec.rb +60 -2
- data/spec/integration/ocsp_connectivity_spec.rb +26 -0
- data/spec/integration/ocsp_verifier_cache_spec.rb +188 -0
- data/spec/integration/ocsp_verifier_spec.rb +340 -0
- data/spec/integration/operation_failure_code_spec.rb +1 -1
- data/spec/integration/operation_failure_message_spec.rb +90 -0
- data/spec/integration/query_cache_spec.rb +1045 -0
- data/spec/integration/query_cache_transactions_spec.rb +190 -0
- data/spec/integration/reconnect_spec.rb +1 -1
- data/spec/integration/retryable_writes/retryable_writes_40_and_newer_spec.rb +1 -0
- data/spec/integration/retryable_writes/shared/performs_legacy_retries.rb +2 -0
- data/spec/integration/sdam_error_handling_spec.rb +86 -1
- data/spec/integration/sdam_events_spec.rb +8 -7
- data/spec/integration/server_selection_spec.rb +36 -0
- data/spec/integration/size_limit_spec.rb +20 -19
- data/spec/integration/snappy_compression_spec.rb +25 -0
- data/spec/integration/srv_monitoring_spec.rb +39 -4
- data/spec/integration/srv_spec.rb +56 -0
- data/spec/integration/transactions_examples_spec.rb +23 -7
- data/spec/integration/zlib_compression_spec.rb +1 -1
- data/spec/integration/zstd_compression_spec.rb +26 -0
- data/spec/lite_spec_helper.rb +15 -5
- data/spec/mongo/address_spec.rb +16 -12
- data/spec/mongo/auth/ldap/conversation_spec.rb +1 -1
- data/spec/mongo/auth/ldap_spec.rb +5 -1
- data/spec/mongo/auth/scram_negotiation_spec.rb +1 -1
- data/spec/mongo/auth/scram_spec.rb +1 -1
- data/spec/mongo/auth/user_spec.rb +1 -1
- data/spec/mongo/auth/x509/conversation_spec.rb +3 -3
- data/spec/mongo/bulk_write_spec.rb +2 -2
- data/spec/mongo/caching_cursor_spec.rb +70 -0
- data/spec/mongo/client_construction_spec.rb +273 -35
- data/spec/mongo/client_encryption_spec.rb +16 -10
- data/spec/mongo/client_spec.rb +64 -0
- data/spec/mongo/cluster/topology/replica_set_spec.rb +1 -1
- data/spec/mongo/cluster/topology/sharded_spec.rb +1 -1
- data/spec/mongo/cluster/topology/single_spec.rb +15 -6
- data/spec/mongo/cluster/topology/unknown_spec.rb +1 -1
- data/spec/mongo/cluster/topology_spec.rb +1 -1
- data/spec/mongo/cluster_spec.rb +6 -18
- data/spec/mongo/collection/view/change_stream_resume_spec.rb +1 -1
- data/spec/mongo/collection/view/explainable_spec.rb +87 -4
- data/spec/mongo/collection/view/map_reduce_spec.rb +2 -0
- data/spec/mongo/collection/view/readable_spec.rb +50 -0
- data/spec/mongo/collection_crud_spec.rb +4357 -0
- data/spec/mongo/collection_ddl_spec.rb +534 -0
- data/spec/mongo/collection_spec.rb +5 -4787
- data/spec/mongo/crypt/auto_decryption_context_spec.rb +1 -1
- data/spec/mongo/crypt/auto_encryption_context_spec.rb +1 -1
- data/spec/mongo/crypt/binary_spec.rb +1 -6
- data/spec/mongo/crypt/binding/binary_spec.rb +1 -6
- data/spec/mongo/crypt/binding/context_spec.rb +2 -7
- data/spec/mongo/crypt/binding/helpers_spec.rb +1 -6
- data/spec/mongo/crypt/binding/mongocrypt_spec.rb +2 -7
- data/spec/mongo/crypt/binding/status_spec.rb +1 -6
- data/spec/mongo/crypt/binding/version_spec.rb +1 -6
- data/spec/mongo/crypt/data_key_context_spec.rb +1 -1
- data/spec/mongo/crypt/explicit_decryption_context_spec.rb +1 -1
- data/spec/mongo/crypt/explicit_encryption_context_spec.rb +1 -1
- data/spec/mongo/crypt/status_spec.rb +1 -6
- data/spec/mongo/database_spec.rb +174 -4
- data/spec/mongo/error/bulk_write_error_spec.rb +3 -3
- data/spec/mongo/error/no_server_available_spec.rb +1 -1
- data/spec/mongo/error/parser_spec.rb +37 -6
- data/spec/mongo/index/view_spec.rb +8 -2
- data/spec/mongo/logger_spec.rb +13 -11
- data/spec/mongo/monitoring/event/server_closed_spec.rb +1 -1
- data/spec/mongo/monitoring/event/server_heartbeat_failed_spec.rb +1 -1
- data/spec/mongo/monitoring/event/server_heartbeat_succeeded_spec.rb +1 -1
- data/spec/mongo/monitoring/event/server_opening_spec.rb +1 -1
- data/spec/mongo/monitoring/event/topology_changed_spec.rb +1 -1
- data/spec/mongo/monitoring/event/topology_closed_spec.rb +1 -1
- data/spec/mongo/monitoring/event/topology_opening_spec.rb +1 -1
- data/spec/mongo/operation/aggregate_spec.rb +2 -1
- data/spec/mongo/operation/collections_info_spec.rb +4 -1
- data/spec/mongo/operation/command_spec.rb +6 -3
- data/spec/mongo/operation/create_index_spec.rb +6 -3
- data/spec/mongo/operation/create_user_spec.rb +6 -3
- data/spec/mongo/operation/delete/bulk_spec.rb +9 -6
- data/spec/mongo/operation/delete/op_msg_spec.rb +3 -3
- data/spec/mongo/operation/delete_spec.rb +11 -7
- data/spec/mongo/operation/drop_index_spec.rb +6 -2
- data/spec/mongo/operation/find/legacy_spec.rb +3 -1
- data/spec/mongo/operation/get_more_spec.rb +3 -1
- data/spec/mongo/operation/indexes_spec.rb +5 -1
- data/spec/mongo/operation/insert/bulk_spec.rb +10 -7
- data/spec/mongo/operation/insert/command_spec.rb +2 -2
- data/spec/mongo/operation/insert/op_msg_spec.rb +3 -3
- data/spec/mongo/operation/insert_spec.rb +15 -12
- data/spec/mongo/operation/map_reduce_spec.rb +5 -2
- data/spec/mongo/operation/read_preference_op_msg_spec.rb +1 -1
- data/spec/mongo/operation/remove_user_spec.rb +6 -3
- data/spec/mongo/operation/result_spec.rb +1 -1
- data/spec/mongo/operation/update/bulk_spec.rb +9 -6
- data/spec/mongo/operation/update/command_spec.rb +2 -2
- data/spec/mongo/operation/update/op_msg_spec.rb +3 -3
- data/spec/mongo/operation/update_spec.rb +10 -7
- data/spec/mongo/operation/update_user_spec.rb +4 -1
- data/spec/mongo/protocol/compressed_spec.rb +26 -12
- data/spec/mongo/query_cache_middleware_spec.rb +55 -0
- data/spec/mongo/query_cache_spec.rb +280 -0
- data/spec/mongo/retryable_spec.rb +3 -2
- data/spec/mongo/server/app_metadata_shared.rb +2 -2
- data/spec/mongo/server/app_metadata_spec.rb +2 -0
- data/spec/mongo/server/connection_pool/populator_spec.rb +3 -1
- data/spec/mongo/server/connection_pool_spec.rb +8 -4
- data/spec/mongo/server/connection_spec.rb +39 -25
- data/spec/mongo/server/description_spec.rb +18 -0
- data/spec/mongo/server/monitor/connection_spec.rb +17 -7
- data/spec/mongo/server/monitor_spec.rb +9 -1
- data/spec/mongo/server_selector_spec.rb +2 -2
- data/spec/mongo/server_spec.rb +15 -2
- data/spec/mongo/socket/ssl_spec.rb +44 -4
- data/spec/mongo/socket_spec.rb +2 -2
- data/spec/mongo/tls_context_hooks_spec.rb +37 -0
- data/spec/mongo/uri/srv_protocol_spec.rb +64 -33
- data/spec/mongo/uri_option_parsing_spec.rb +11 -11
- data/spec/mongo/uri_spec.rb +68 -41
- data/spec/mongo/utils_spec.rb +39 -0
- data/spec/runners/auth.rb +3 -0
- data/spec/runners/change_streams/test.rb +1 -1
- data/spec/runners/connection_string.rb +31 -124
- data/spec/runners/crud/requirement.rb +40 -3
- data/spec/runners/crud/test_base.rb +0 -19
- data/spec/runners/crud/verifier.rb +8 -0
- data/spec/runners/server_selection.rb +1 -1
- data/spec/runners/transactions/operation.rb +13 -2
- data/spec/runners/transactions/test.rb +3 -2
- data/spec/runners/unified.rb +96 -0
- data/spec/runners/unified/assertions.rb +249 -0
- data/spec/runners/unified/change_stream_operations.rb +26 -0
- data/spec/runners/unified/crud_operations.rb +199 -0
- data/spec/runners/unified/ddl_operations.rb +96 -0
- data/spec/runners/unified/entity_map.rb +39 -0
- data/spec/runners/unified/error.rb +25 -0
- data/spec/runners/unified/event_subscriber.rb +91 -0
- data/spec/runners/unified/exceptions.rb +21 -0
- data/spec/runners/unified/grid_fs_operations.rb +55 -0
- data/spec/runners/unified/support_operations.rb +250 -0
- data/spec/runners/unified/test.rb +393 -0
- data/spec/runners/unified/test_group.rb +28 -0
- data/spec/runners/unified/using_hash.rb +31 -0
- data/spec/shared/LICENSE +20 -0
- data/spec/shared/bin/get-mongodb-download-url +17 -0
- data/spec/shared/lib/mrss/child_process_helper.rb +80 -0
- data/spec/shared/lib/mrss/cluster_config.rb +218 -0
- data/spec/shared/lib/mrss/constraints.rb +346 -0
- data/spec/shared/lib/mrss/docker_runner.rb +262 -0
- data/spec/shared/lib/mrss/lite_constraints.rb +175 -0
- data/spec/shared/lib/mrss/server_version_registry.rb +112 -0
- data/spec/shared/lib/mrss/spec_organizer.rb +149 -0
- data/spec/shared/lib/mrss/utils.rb +15 -0
- data/spec/shared/share/Dockerfile.erb +231 -0
- data/spec/shared/shlib/distro.sh +73 -0
- data/spec/shared/shlib/server.sh +290 -0
- data/spec/shared/shlib/set_env.sh +128 -0
- data/spec/solo/clean_exit_spec.rb +21 -0
- data/spec/spec_helper.rb +7 -2
- data/spec/spec_tests/cmap_spec.rb +7 -3
- data/spec/spec_tests/crud_unified_spec.rb +10 -0
- data/spec/spec_tests/data/change_streams/change-streams-errors.yml +0 -1
- data/spec/spec_tests/data/change_streams/change-streams.yml +0 -2
- data/spec/spec_tests/data/cmap/pool-checkout-connection.yml +6 -2
- data/spec/spec_tests/data/cmap/pool-create-min-size.yml +3 -0
- data/spec/spec_tests/data/connection_string/valid-warnings.yml +24 -0
- data/spec/spec_tests/data/crud_unified/estimatedDocumentCount.yml +267 -0
- data/spec/spec_tests/data/retryable_reads/estimatedDocumentCount-4.9.yml +60 -0
- data/spec/spec_tests/data/retryable_reads/{estimatedDocumentCount.yml → estimatedDocumentCount-pre4.9.yml} +2 -0
- data/spec/spec_tests/data/retryable_reads/estimatedDocumentCount-serverErrors-4.9.yml +146 -0
- data/spec/spec_tests/data/retryable_reads/{estimatedDocumentCount-serverErrors.yml → estimatedDocumentCount-serverErrors-pre4.9.yml} +2 -0
- data/spec/spec_tests/data/retryable_reads/listIndexNames.yml +1 -1
- data/spec/spec_tests/data/sdam_monitoring/discovered_standalone.yml +1 -3
- data/spec/spec_tests/data/sdam_monitoring/standalone.yml +2 -2
- data/spec/spec_tests/data/sdam_monitoring/standalone_repeated.yml +2 -2
- data/spec/spec_tests/data/sdam_monitoring/standalone_suppress_equal_description_changes.yml +2 -2
- data/spec/spec_tests/data/sdam_monitoring/standalone_to_rs_with_me_mismatch.yml +2 -2
- data/spec/spec_tests/data/unified/valid-fail/operation-failure.yml +31 -0
- data/spec/spec_tests/data/unified/valid-pass/poc-change-streams.yml +220 -0
- data/spec/spec_tests/data/unified/valid-pass/poc-command-monitoring.yml +102 -0
- data/spec/spec_tests/data/unified/valid-pass/poc-crud.yml +184 -0
- data/spec/spec_tests/data/unified/valid-pass/poc-gridfs.yml +155 -0
- data/spec/spec_tests/data/unified/valid-pass/poc-retryable-reads.yml +193 -0
- data/spec/spec_tests/data/unified/valid-pass/poc-retryable-writes.yml +210 -0
- data/spec/spec_tests/data/unified/valid-pass/poc-sessions.yml +215 -0
- data/spec/spec_tests/data/unified/valid-pass/poc-transactions-convenient-api.yml +235 -0
- data/spec/spec_tests/data/unified/valid-pass/poc-transactions-mongos-pin-auto.yml +169 -0
- data/spec/spec_tests/data/unified/valid-pass/poc-transactions.yml +170 -0
- data/spec/spec_tests/data/uri_options/auth-options.yml +25 -0
- data/spec/spec_tests/data/uri_options/compression-options.yml +7 -4
- data/spec/spec_tests/data/uri_options/read-preference-options.yml +24 -0
- data/spec/spec_tests/data/uri_options/ruby-connection-options.yml +1 -0
- data/spec/spec_tests/data/uri_options/tls-options.yml +160 -4
- data/spec/spec_tests/data/versioned_api/crud-api-version-1-strict.yml +416 -0
- data/spec/spec_tests/data/versioned_api/crud-api-version-1.yml +409 -0
- data/spec/spec_tests/data/versioned_api/runcommand-helper-no-api-version-declared.yml +67 -0
- data/spec/spec_tests/data/versioned_api/test-commands-deprecation-errors.yml +47 -0
- data/spec/spec_tests/data/versioned_api/test-commands-strict-mode.yml +44 -0
- data/spec/spec_tests/data/versioned_api/transaction-handling.yml +180 -0
- data/spec/spec_tests/dns_seedlist_discovery_spec.rb +9 -1
- data/spec/spec_tests/unified_spec.rb +15 -0
- data/spec/spec_tests/uri_options_spec.rb +47 -33
- data/spec/spec_tests/versioned_api_spec.rb +10 -0
- data/spec/stress/fork_reconnect_stress_spec.rb +1 -1
- data/spec/support/certificates/atlas-ocsp-ca.crt +28 -0
- data/spec/support/certificates/atlas-ocsp.crt +41 -0
- data/spec/support/client_registry_macros.rb +11 -2
- data/spec/support/common_shortcuts.rb +59 -0
- data/spec/support/constraints.rb +6 -253
- data/spec/support/matchers.rb +16 -0
- data/spec/support/ocsp +1 -0
- data/spec/support/session_registry.rb +52 -0
- data/spec/support/shared/session.rb +2 -2
- data/spec/support/spec_config.rb +68 -3
- data/spec/support/spec_setup.rb +48 -38
- data/spec/support/utils.rb +102 -4
- metadata +1087 -936
- metadata.gz.sig +0 -0
- data/lib/mongo/operation/shared/collections_info_or_list_collections.rb +0 -56
- data/lib/mongo/operation/shared/op_msg_or_list_indexes_command.rb +0 -47
- data/spec/support/child_process_helper.rb +0 -78
- data/spec/support/cluster_config.rb +0 -207
- data/spec/support/lite_constraints.rb +0 -141
- data/spec/support/spec_organizer.rb +0 -129
@@ -305,7 +305,8 @@ describe Mongo::Index::View do
|
|
305
305
|
{ key: { testing: -1 }, unique: true },
|
306
306
|
{ commit_quorum: 'unsupported-value' }
|
307
307
|
)
|
308
|
-
|
308
|
+
# 4.4.4 changed the text of the error message
|
309
|
+
end.to raise_error(Mongo::Error::OperationFailure, /Commit quorum cannot be satisfied with the current replica set configuration|No write concern mode named 'unsupported-value' found in replica set configuration/)
|
309
310
|
end
|
310
311
|
end
|
311
312
|
end
|
@@ -649,6 +650,8 @@ describe Mongo::Index::View do
|
|
649
650
|
end
|
650
651
|
|
651
652
|
context 'when using bucket option' do
|
653
|
+
# Option is removed in 4.9
|
654
|
+
max_server_version '4.7'
|
652
655
|
|
653
656
|
let(:spec) do
|
654
657
|
{ 'any' => 1 }
|
@@ -755,6 +758,8 @@ describe Mongo::Index::View do
|
|
755
758
|
end
|
756
759
|
|
757
760
|
context 'when using bucket option' do
|
761
|
+
# Option is removed in 4.9
|
762
|
+
max_server_version '4.7'
|
758
763
|
|
759
764
|
let(:spec) do
|
760
765
|
{ 'any' => 1 }
|
@@ -964,7 +969,8 @@ describe Mongo::Index::View do
|
|
964
969
|
it 'raises an exception' do
|
965
970
|
expect do
|
966
971
|
view.create_one({ 'x' => 1 }, commit_quorum: 'unsupported-value')
|
967
|
-
|
972
|
+
# 4.4.4 changed the text of the error message
|
973
|
+
end.to raise_error(Mongo::Error::OperationFailure, /Commit quorum cannot be satisfied with the current replica set configuration|No write concern mode named 'unsupported-value' found in replica set configuration/)
|
968
974
|
end
|
969
975
|
end
|
970
976
|
end
|
data/spec/mongo/logger_spec.rb
CHANGED
@@ -6,6 +6,16 @@ describe Mongo::Logger do
|
|
6
6
|
described_class.logger
|
7
7
|
end
|
8
8
|
|
9
|
+
around do |example|
|
10
|
+
saved_logger = Mongo::Logger.logger
|
11
|
+
|
12
|
+
begin
|
13
|
+
example.run
|
14
|
+
ensure
|
15
|
+
Mongo::Logger.logger = saved_logger
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
9
19
|
describe '.logger' do
|
10
20
|
|
11
21
|
context 'when no logger has been set' do
|
@@ -18,25 +28,21 @@ describe Mongo::Logger do
|
|
18
28
|
Mongo::Logger.logger = nil
|
19
29
|
end
|
20
30
|
|
21
|
-
after do
|
22
|
-
Mongo::Logger.logger = test_logger
|
23
|
-
end
|
24
|
-
|
25
31
|
it 'returns the default logger' do
|
26
|
-
expect(logger.level).to eq(Logger::
|
32
|
+
expect(logger.level).to eq(Logger::INFO)
|
27
33
|
end
|
28
34
|
end
|
29
35
|
|
30
36
|
context 'when a logger has been set' do
|
31
37
|
|
32
38
|
let(:info) do
|
33
|
-
Logger.new(
|
39
|
+
Logger.new(STDOUT).tap do |log|
|
34
40
|
log.level = Logger::INFO
|
35
41
|
end
|
36
42
|
end
|
37
43
|
|
38
44
|
let(:debug) do
|
39
|
-
Logger.new(
|
45
|
+
Logger.new(STDOUT).tap do |log|
|
40
46
|
log.level = Logger::DEBUG
|
41
47
|
end
|
42
48
|
end
|
@@ -45,10 +51,6 @@ describe Mongo::Logger do
|
|
45
51
|
described_class.logger = debug
|
46
52
|
end
|
47
53
|
|
48
|
-
after do
|
49
|
-
described_class.logger = info
|
50
|
-
end
|
51
|
-
|
52
54
|
it 'returns the provided logger' do
|
53
55
|
expect(logger.level).to eq(Logger::DEBUG)
|
54
56
|
end
|
@@ -20,7 +20,7 @@ describe Mongo::Monitoring::Event::ServerHeartbeatFailed do
|
|
20
20
|
end
|
21
21
|
|
22
22
|
let(:event) do
|
23
|
-
described_class.new(address, 1, Mongo::Error::SocketError.new('foo'))
|
23
|
+
described_class.new(address, 1, Mongo::Error::SocketError.new('foo'), started_event: nil)
|
24
24
|
end
|
25
25
|
|
26
26
|
describe '#summary' do
|
@@ -19,6 +19,7 @@ describe Mongo::Operation::Aggregate do
|
|
19
19
|
end
|
20
20
|
let(:op) { described_class.new(spec) }
|
21
21
|
|
22
|
+
let(:context) { Mongo::Operation::Context.new }
|
22
23
|
|
23
24
|
describe '#initialize' do
|
24
25
|
|
@@ -64,7 +65,7 @@ describe Mongo::Operation::Aggregate do
|
|
64
65
|
|
65
66
|
it 'raises an exception' do
|
66
67
|
expect {
|
67
|
-
op.execute(authorized_primary,
|
68
|
+
op.execute(authorized_primary, context: context)
|
68
69
|
}.to raise_error(Mongo::Error::OperationFailure)
|
69
70
|
end
|
70
71
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Mongo::Operation::CollectionsInfo do
|
4
|
+
require_no_required_api_version
|
4
5
|
|
5
6
|
let(:spec) do
|
6
7
|
{ selector: { listCollections: 1 },
|
@@ -16,6 +17,8 @@ describe Mongo::Operation::CollectionsInfo do
|
|
16
17
|
described_class.new(spec)
|
17
18
|
end
|
18
19
|
|
20
|
+
let(:context) { Mongo::Operation::Context.new }
|
21
|
+
|
19
22
|
describe '#execute' do
|
20
23
|
|
21
24
|
before do
|
@@ -31,7 +34,7 @@ describe Mongo::Operation::CollectionsInfo do
|
|
31
34
|
end
|
32
35
|
|
33
36
|
let(:info) do
|
34
|
-
docs = op.execute(authorized_primary,
|
37
|
+
docs = op.execute(authorized_primary, context: context).documents
|
35
38
|
docs.collect { |info| info['name'].sub("#{SpecConfig.instance.test_db}.", '') }
|
36
39
|
end
|
37
40
|
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Mongo::Operation::Command do
|
4
|
+
require_no_required_api_version
|
4
5
|
|
5
6
|
let(:selector) { { :ismaster => 1 } }
|
6
7
|
let(:options) { { :limit => -1 } }
|
@@ -12,6 +13,8 @@ describe Mongo::Operation::Command do
|
|
12
13
|
end
|
13
14
|
let(:op) { described_class.new(spec) }
|
14
15
|
|
16
|
+
let(:context) { Mongo::Operation::Context.new }
|
17
|
+
|
15
18
|
describe '#initialize' do
|
16
19
|
|
17
20
|
it 'sets the spec' do
|
@@ -43,7 +46,7 @@ describe Mongo::Operation::Command do
|
|
43
46
|
context 'when the command succeeds' do
|
44
47
|
|
45
48
|
let(:response) do
|
46
|
-
op.execute(authorized_primary,
|
49
|
+
op.execute(authorized_primary, context: context)
|
47
50
|
end
|
48
51
|
|
49
52
|
it 'returns the reponse' do
|
@@ -59,7 +62,7 @@ describe Mongo::Operation::Command do
|
|
59
62
|
|
60
63
|
it 'raises an exception' do
|
61
64
|
expect {
|
62
|
-
op.execute(authorized_primary,
|
65
|
+
op.execute(authorized_primary, context: context)
|
63
66
|
}.to raise_error(Mongo::Error::OperationFailure)
|
64
67
|
end
|
65
68
|
end
|
@@ -72,7 +75,7 @@ describe Mongo::Operation::Command do
|
|
72
75
|
|
73
76
|
it 'raises an error' do
|
74
77
|
expect {
|
75
|
-
op.execute(authorized_primary,
|
78
|
+
op.execute(authorized_primary, context: context)
|
76
79
|
}.to raise_error(Mongo::Error::MaxBSONSize)
|
77
80
|
end
|
78
81
|
end
|
@@ -1,6 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Mongo::Operation::CreateIndex do
|
4
|
+
require_no_required_api_version
|
5
|
+
|
6
|
+
let(:context) { Mongo::Operation::Context.new }
|
4
7
|
|
5
8
|
before do
|
6
9
|
authorized_collection.drop
|
@@ -20,7 +23,7 @@ describe Mongo::Operation::CreateIndex do
|
|
20
23
|
end
|
21
24
|
|
22
25
|
let(:response) do
|
23
|
-
operation.execute(authorized_primary,
|
26
|
+
operation.execute(authorized_primary, context: context)
|
24
27
|
end
|
25
28
|
|
26
29
|
it 'returns ok' do
|
@@ -43,12 +46,12 @@ describe Mongo::Operation::CreateIndex do
|
|
43
46
|
end
|
44
47
|
|
45
48
|
before do
|
46
|
-
operation.execute(authorized_primary,
|
49
|
+
operation.execute(authorized_primary, context: context)
|
47
50
|
end
|
48
51
|
|
49
52
|
it 'raises an exception' do
|
50
53
|
expect {
|
51
|
-
second_operation.execute(authorized_primary,
|
54
|
+
second_operation.execute(authorized_primary, context: context)
|
52
55
|
}.to raise_error(Mongo::Error::OperationFailure)
|
53
56
|
end
|
54
57
|
end
|
@@ -1,6 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Mongo::Operation::CreateUser do
|
4
|
+
require_no_required_api_version
|
5
|
+
|
6
|
+
let(:context) { Mongo::Operation::Context.new }
|
4
7
|
|
5
8
|
describe '#execute' do
|
6
9
|
|
@@ -26,7 +29,7 @@ describe Mongo::Operation::CreateUser do
|
|
26
29
|
context 'when user creation was successful' do
|
27
30
|
|
28
31
|
let!(:response) do
|
29
|
-
operation.execute(root_authorized_primary,
|
32
|
+
operation.execute(root_authorized_primary, context: context)
|
30
33
|
end
|
31
34
|
|
32
35
|
it 'saves the user in the database' do
|
@@ -38,8 +41,8 @@ describe Mongo::Operation::CreateUser do
|
|
38
41
|
|
39
42
|
it 'raises an exception' do
|
40
43
|
expect {
|
41
|
-
operation.execute(root_authorized_primary,
|
42
|
-
operation.execute(root_authorized_primary,
|
44
|
+
operation.execute(root_authorized_primary, context: context)
|
45
|
+
operation.execute(root_authorized_primary, context: context)
|
43
46
|
}.to raise_error(Mongo::Error::OperationFailure)
|
44
47
|
end
|
45
48
|
end
|
@@ -1,6 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Mongo::Operation::Delete do
|
4
|
+
require_no_required_api_version
|
5
|
+
|
6
|
+
let(:context) { Mongo::Operation::Context.new }
|
4
7
|
|
5
8
|
let(:documents) do
|
6
9
|
[ { 'q' => { foo: 1 }, 'limit' => 1 } ]
|
@@ -100,7 +103,7 @@ describe Mongo::Operation::Delete do
|
|
100
103
|
|
101
104
|
it 'deletes the document from the database' do
|
102
105
|
authorized_primary.with_connection do |connection|
|
103
|
-
op.bulk_execute(connection,
|
106
|
+
op.bulk_execute(connection, context: context)
|
104
107
|
end
|
105
108
|
expect(authorized_collection.find.count).to eq(1)
|
106
109
|
end
|
@@ -125,7 +128,7 @@ describe Mongo::Operation::Delete do
|
|
125
128
|
|
126
129
|
it 'deletes the documents from the database' do
|
127
130
|
authorized_primary.with_connection do |connection|
|
128
|
-
op.bulk_execute(connection,
|
131
|
+
op.bulk_execute(connection, context: context)
|
129
132
|
end
|
130
133
|
expect(authorized_collection.find.count).to eq(0)
|
131
134
|
end
|
@@ -162,7 +165,7 @@ describe Mongo::Operation::Delete do
|
|
162
165
|
|
163
166
|
it 'aborts after first error' do
|
164
167
|
authorized_primary.with_connection do |connection|
|
165
|
-
failing_delete.bulk_execute(connection,
|
168
|
+
failing_delete.bulk_execute(connection, context: context)
|
166
169
|
end
|
167
170
|
expect(authorized_collection.find.count).to eq(2)
|
168
171
|
end
|
@@ -176,7 +179,7 @@ describe Mongo::Operation::Delete do
|
|
176
179
|
|
177
180
|
it 'aborts after first error' do
|
178
181
|
authorized_primary.with_connection do |connection|
|
179
|
-
failing_delete.bulk_execute(connection,
|
182
|
+
failing_delete.bulk_execute(connection, context: context)
|
180
183
|
end
|
181
184
|
expect(authorized_collection.find.count).to eq(2)
|
182
185
|
end
|
@@ -214,7 +217,7 @@ describe Mongo::Operation::Delete do
|
|
214
217
|
|
215
218
|
it 'does not abort after first error' do
|
216
219
|
authorized_primary.with_connection do |connection|
|
217
|
-
failing_delete.bulk_execute(connection,
|
220
|
+
failing_delete.bulk_execute(connection, context: context)
|
218
221
|
end
|
219
222
|
expect(authorized_collection.find.count).to eq(1)
|
220
223
|
end
|
@@ -228,7 +231,7 @@ describe Mongo::Operation::Delete do
|
|
228
231
|
|
229
232
|
it 'does not abort after first error' do
|
230
233
|
authorized_primary.with_connection do |connection|
|
231
|
-
failing_delete.bulk_execute(connection,
|
234
|
+
failing_delete.bulk_execute(connection, context: context)
|
232
235
|
end
|
233
236
|
expect(authorized_collection.find.count).to eq(1)
|
234
237
|
end
|
@@ -72,7 +72,7 @@ describe Mongo::Operation::Delete::OpMsg do
|
|
72
72
|
|
73
73
|
describe 'write concern' do
|
74
74
|
# https://jira.mongodb.org/browse/RUBY-2224
|
75
|
-
|
75
|
+
require_no_linting
|
76
76
|
|
77
77
|
context 'when write concern is not specified' do
|
78
78
|
|
@@ -99,7 +99,7 @@ describe Mongo::Operation::Delete::OpMsg do
|
|
99
99
|
|
100
100
|
describe '#message' do
|
101
101
|
# https://jira.mongodb.org/browse/RUBY-2224
|
102
|
-
|
102
|
+
require_no_linting
|
103
103
|
|
104
104
|
context 'when the server supports OP_MSG' do
|
105
105
|
|
@@ -152,7 +152,7 @@ describe Mongo::Operation::Delete::OpMsg do
|
|
152
152
|
|
153
153
|
context 'when an implicit session is created and the topology is then updated and the server does not support sessions' do
|
154
154
|
# Mocks on features are incompatible with linting
|
155
|
-
|
155
|
+
require_no_linting
|
156
156
|
|
157
157
|
let(:expected_global_args) do
|
158
158
|
global_args.dup.tap do |args|
|
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Mongo::Operation::Delete do
|
4
|
+
require_no_required_api_version
|
5
|
+
|
4
6
|
before do
|
5
7
|
begin
|
6
8
|
authorized_collection.delete_many
|
@@ -30,6 +32,8 @@ describe Mongo::Operation::Delete do
|
|
30
32
|
|
31
33
|
let(:op) { described_class.new(spec) }
|
32
34
|
|
35
|
+
let(:context) { Mongo::Operation::Context.new }
|
36
|
+
|
33
37
|
describe '#initialize' do
|
34
38
|
|
35
39
|
context 'spec' do
|
@@ -103,7 +107,7 @@ describe Mongo::Operation::Delete do
|
|
103
107
|
end
|
104
108
|
|
105
109
|
let(:result) do
|
106
|
-
delete.execute(authorized_primary,
|
110
|
+
delete.execute(authorized_primary, context: context)
|
107
111
|
end
|
108
112
|
|
109
113
|
it 'deletes the documents from the database' do
|
@@ -123,7 +127,7 @@ describe Mongo::Operation::Delete do
|
|
123
127
|
|
124
128
|
it 'raises an exception' do
|
125
129
|
expect {
|
126
|
-
delete.execute(authorized_primary,
|
130
|
+
delete.execute(authorized_primary, context: context)
|
127
131
|
}.to raise_error(Mongo::Error::OperationFailure)
|
128
132
|
end
|
129
133
|
end
|
@@ -147,7 +151,7 @@ describe Mongo::Operation::Delete do
|
|
147
151
|
end
|
148
152
|
|
149
153
|
let(:result) do
|
150
|
-
delete.execute(authorized_primary,
|
154
|
+
delete.execute(authorized_primary, context: context)
|
151
155
|
end
|
152
156
|
|
153
157
|
it 'deletes the documents from the database' do
|
@@ -166,13 +170,13 @@ describe Mongo::Operation::Delete do
|
|
166
170
|
end
|
167
171
|
|
168
172
|
let(:result) do
|
169
|
-
delete.execute(authorized_primary,
|
173
|
+
delete.execute(authorized_primary, context: context)
|
170
174
|
end
|
171
175
|
|
172
176
|
it 'does not delete any documents' do
|
173
177
|
|
174
178
|
expect {
|
175
|
-
op.execute(authorized_primary,
|
179
|
+
op.execute(authorized_primary, context: context)
|
176
180
|
}.to raise_error(Mongo::Error::OperationFailure)
|
177
181
|
|
178
182
|
expect(authorized_collection.find.count).to eq(2)
|
@@ -187,7 +191,7 @@ describe Mongo::Operation::Delete do
|
|
187
191
|
|
188
192
|
it 'raises an error' do
|
189
193
|
expect {
|
190
|
-
op.execute(authorized_primary,
|
194
|
+
op.execute(authorized_primary, context: context)
|
191
195
|
}.to raise_error(Mongo::Error::MaxBSONSize)
|
192
196
|
end
|
193
197
|
end
|
@@ -211,7 +215,7 @@ describe Mongo::Operation::Delete do
|
|
211
215
|
end
|
212
216
|
|
213
217
|
let(:result) do
|
214
|
-
delete.execute(authorized_primary,
|
218
|
+
delete.execute(authorized_primary, context: context)
|
215
219
|
end
|
216
220
|
|
217
221
|
before do
|