mongo 2.14.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 +0 -0
- data.tar.gz.sig +0 -0
- data/README.md +4 -1
- data/Rakefile +8 -15
- data/lib/mongo.rb +23 -0
- 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 +21 -18
- data/lib/mongo/client.rb +82 -6
- data/lib/mongo/cluster.rb +19 -28
- data/lib/mongo/cluster/reapers/cursor_reaper.rb +6 -2
- data/lib/mongo/cluster/sdam_flow.rb +14 -0
- data/lib/mongo/collection.rb +8 -6
- data/lib/mongo/collection/view/aggregation.rb +1 -1
- data/lib/mongo/collection/view/change_stream.rb +1 -1
- data/lib/mongo/collection/view/iterable.rb +1 -1
- data/lib/mongo/collection/view/map_reduce.rb +2 -2
- data/lib/mongo/collection/view/readable.rb +42 -20
- data/lib/mongo/collection/view/writable.rb +14 -14
- data/lib/mongo/cursor.rb +2 -2
- data/lib/mongo/database.rb +22 -5
- data/lib/mongo/database/view.rb +1 -1
- data/lib/mongo/error.rb +9 -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/operation_failure.rb +21 -2
- 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/unmet_dependency.rb +21 -0
- data/lib/mongo/grid/fs_bucket.rb +37 -37
- data/lib/mongo/index/view.rb +21 -11
- 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 +2 -2
- data/lib/mongo/operation/collections_info.rb +18 -1
- data/lib/mongo/operation/collections_info/command.rb +2 -2
- data/lib/mongo/operation/context.rb +99 -0
- data/lib/mongo/operation/indexes.rb +15 -1
- 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/list_collections/result.rb +4 -1
- data/lib/mongo/operation/result.rb +2 -0
- data/lib/mongo/operation/shared/executable.rb +24 -14
- data/lib/mongo/operation/shared/executable_no_validate.rb +2 -2
- 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/sessions_supported.rb +13 -2
- data/lib/mongo/operation/shared/write.rb +8 -18
- data/lib/mongo/protocol/compressed.rb +51 -5
- data/lib/mongo/protocol/message.rb +20 -2
- data/lib/mongo/protocol/msg.rb +36 -11
- data/lib/mongo/query_cache.rb +30 -0
- data/lib/mongo/retryable.rb +1 -1
- data/lib/mongo/server.rb +7 -15
- data/lib/mongo/server/app_metadata.rb +52 -18
- data/lib/mongo/server/connection.rb +5 -0
- data/lib/mongo/server/connection_base.rb +13 -10
- data/lib/mongo/server/connection_pool.rb +6 -4
- data/lib/mongo/server/description.rb +4 -0
- data/lib/mongo/server/description/features.rb +9 -8
- data/lib/mongo/server/monitor.rb +20 -1
- data/lib/mongo/server/monitor/app_metadata.rb +1 -1
- data/lib/mongo/server/monitor/connection.rb +9 -10
- data/lib/mongo/server/pending_connection.rb +24 -6
- data/lib/mongo/server/push_monitor.rb +11 -1
- data/lib/mongo/session.rb +2 -2
- data/lib/mongo/session/session_pool.rb +4 -2
- data/lib/mongo/socket.rb +29 -4
- data/lib/mongo/socket/ssl.rb +8 -0
- data/lib/mongo/srv/monitor.rb +0 -11
- data/lib/mongo/uri/options_mapper.rb +38 -0
- data/lib/mongo/utils.rb +15 -0
- data/lib/mongo/version.rb +1 -1
- data/spec/README.md +24 -1
- data/spec/integration/auth_spec.rb +25 -15
- data/spec/integration/bulk_write_error_message_spec.rb +41 -0
- data/spec/integration/change_stream_spec.rb +4 -4
- data/spec/integration/command_monitoring_spec.rb +2 -2
- data/spec/integration/connection_spec.rb +2 -0
- data/spec/integration/docs_examples_spec.rb +8 -1
- data/spec/integration/fork_reconnect_spec.rb +4 -1
- data/spec/integration/ocsp_verifier_spec.rb +13 -7
- data/spec/integration/operation_failure_code_spec.rb +1 -1
- data/spec/integration/operation_failure_message_spec.rb +90 -0
- data/spec/integration/reconnect_spec.rb +1 -1
- data/spec/integration/sdam_error_handling_spec.rb +1 -1
- data/spec/integration/sdam_events_spec.rb +3 -5
- data/spec/integration/snappy_compression_spec.rb +25 -0
- data/spec/integration/srv_monitoring_spec.rb +1 -1
- data/spec/integration/transactions_examples_spec.rb +6 -0
- data/spec/integration/zlib_compression_spec.rb +1 -1
- data/spec/integration/zstd_compression_spec.rb +26 -0
- data/spec/lite_spec_helper.rb +7 -1
- data/spec/mongo/address_spec.rb +15 -11
- 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/x509/conversation_spec.rb +3 -3
- data/spec/mongo/client_construction_spec.rb +207 -33
- data/spec/mongo/client_spec.rb +17 -0
- data/spec/mongo/cluster_spec.rb +3 -18
- data/spec/mongo/collection/view/explainable_spec.rb +1 -1
- data/spec/mongo/collection/view/readable_spec.rb +33 -19
- 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 -4859
- data/spec/mongo/database_spec.rb +66 -4
- data/spec/mongo/error/bulk_write_error_spec.rb +3 -3
- data/spec/mongo/error/parser_spec.rb +37 -6
- data/spec/mongo/index/view_spec.rb +8 -2
- 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/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_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_spec.rb +15 -12
- data/spec/mongo/operation/map_reduce_spec.rb +5 -2
- 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_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/retryable_spec.rb +3 -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 +1 -1
- data/spec/mongo/server/connection_spec.rb +24 -17
- data/spec/mongo/server/monitor/connection_spec.rb +17 -7
- data/spec/mongo/server/monitor_spec.rb +9 -1
- data/spec/mongo/server_spec.rb +15 -2
- data/spec/mongo/socket/ssl_spec.rb +40 -0
- data/spec/mongo/socket_spec.rb +2 -2
- data/spec/mongo/tls_context_hooks_spec.rb +37 -0
- data/spec/runners/connection_string.rb +0 -4
- data/spec/runners/crud/requirement.rb +40 -3
- data/spec/runners/crud/verifier.rb +8 -0
- data/spec/runners/transactions/operation.rb +13 -2
- data/spec/runners/transactions/test.rb +1 -0
- 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/bin/get-mongodb-download-url +17 -0
- data/spec/shared/lib/mrss/cluster_config.rb +218 -0
- data/spec/shared/lib/mrss/constraints.rb +43 -0
- data/spec/shared/lib/mrss/docker_runner.rb +262 -0
- data/spec/shared/lib/mrss/server_version_registry.rb +112 -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 +4 -1
- data/spec/spec_tests/crud_unified_spec.rb +10 -0
- data/spec/spec_tests/data/change_streams/change-streams.yml +0 -1
- 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/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/compression-options.yml +1 -1
- 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/unified_spec.rb +15 -0
- data/spec/spec_tests/uri_options_spec.rb +16 -0
- data/spec/spec_tests/versioned_api_spec.rb +10 -0
- data/spec/support/common_shortcuts.rb +15 -1
- data/spec/support/shared/session.rb +2 -2
- data/spec/support/spec_config.rb +46 -3
- data/spec/support/spec_setup.rb +48 -38
- data/spec/support/utils.rb +64 -3
- metadata +1104 -992
- metadata.gz.sig +0 -0
- data/lib/mongo/operation/shared/collections_info_or_list_collections.rb +0 -58
- data/lib/mongo/operation/shared/op_msg_or_list_indexes_command.rb +0 -47
- data/spec/support/cluster_config.rb +0 -207
@@ -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
|
@@ -1,10 +1,14 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Mongo::Operation::DropIndex do
|
4
|
+
require_no_required_api_version
|
5
|
+
|
4
6
|
before do
|
5
7
|
authorized_collection.indexes.drop_all
|
6
8
|
end
|
7
9
|
|
10
|
+
let(:context) { Mongo::Operation::Context.new }
|
11
|
+
|
8
12
|
describe '#execute' do
|
9
13
|
|
10
14
|
context 'when the index exists' do
|
@@ -26,7 +30,7 @@ describe Mongo::Operation::DropIndex do
|
|
26
30
|
end
|
27
31
|
|
28
32
|
let(:response) do
|
29
|
-
operation.execute(authorized_primary,
|
33
|
+
operation.execute(authorized_primary, context: context)
|
30
34
|
end
|
31
35
|
|
32
36
|
it 'removes the index' do
|
@@ -46,7 +50,7 @@ describe Mongo::Operation::DropIndex do
|
|
46
50
|
|
47
51
|
it 'raises an exception' do
|
48
52
|
expect {
|
49
|
-
operation.execute(authorized_primary,
|
53
|
+
operation.execute(authorized_primary, context: context)
|
50
54
|
}.to raise_error(Mongo::Error::OperationFailure)
|
51
55
|
end
|
52
56
|
end
|
@@ -3,6 +3,8 @@ require 'spec_helper'
|
|
3
3
|
describe Mongo::Operation::Find::Legacy do
|
4
4
|
max_server_version '3.4'
|
5
5
|
|
6
|
+
let(:context) { Mongo::Operation::Context.new }
|
7
|
+
|
6
8
|
let(:selector) { { foo: 1 } }
|
7
9
|
let(:query_options) { {} }
|
8
10
|
let(:spec) do
|
@@ -116,7 +118,7 @@ describe Mongo::Operation::Find::Legacy do
|
|
116
118
|
|
117
119
|
it 'does not raise an exception' do
|
118
120
|
authorized_primary.with_connection do |connection|
|
119
|
-
expect(op.execute(connection,
|
121
|
+
expect(op.execute(connection, context: context)).to be_a(Mongo::Operation::Find::Legacy::Result)
|
120
122
|
end
|
121
123
|
end
|
122
124
|
end
|
@@ -19,6 +19,8 @@ describe Mongo::Operation::GetMore::Legacy do
|
|
19
19
|
|
20
20
|
let(:op) { described_class.new(spec) }
|
21
21
|
|
22
|
+
let(:context) { Mongo::Operation::Context.new }
|
23
|
+
|
22
24
|
describe '#initialize' do
|
23
25
|
|
24
26
|
it 'sets the spec' do
|
@@ -49,7 +51,7 @@ describe Mongo::Operation::GetMore::Legacy do
|
|
49
51
|
expect(Mongo::Protocol::GetMore).to receive(:new).with(SpecConfig.instance.test_db, TEST_COLL, to_return, cursor_id).and_call_original
|
50
52
|
begin
|
51
53
|
authorized_primary.with_connection do |connection|
|
52
|
-
op.execute(connection,
|
54
|
+
op.execute(connection, context: context)
|
53
55
|
end
|
54
56
|
rescue
|
55
57
|
end
|
@@ -1,6 +1,10 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Mongo::Operation::Indexes do
|
4
|
+
require_no_required_api_version
|
5
|
+
|
6
|
+
let(:context) { Mongo::Operation::Context.new }
|
7
|
+
|
4
8
|
describe '#execute' do
|
5
9
|
|
6
10
|
let(:index_spec) do
|
@@ -24,7 +28,7 @@ describe Mongo::Operation::Indexes do
|
|
24
28
|
end
|
25
29
|
|
26
30
|
let(:indexes) do
|
27
|
-
operation.execute(authorized_primary,
|
31
|
+
operation.execute(authorized_primary, context: context)
|
28
32
|
end
|
29
33
|
|
30
34
|
it 'returns the indexes for the collection' do
|
@@ -2,6 +2,9 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Mongo::Operation::Insert do
|
4
4
|
require_no_multi_shard
|
5
|
+
require_no_required_api_version
|
6
|
+
|
7
|
+
let(:context) { Mongo::Operation::Context.new }
|
5
8
|
|
6
9
|
before do
|
7
10
|
begin
|
@@ -100,7 +103,7 @@ describe Mongo::Operation::Insert do
|
|
100
103
|
|
101
104
|
let(:inserted_ids) do
|
102
105
|
authorized_primary.with_connection do |connection|
|
103
|
-
op.bulk_execute(connection,
|
106
|
+
op.bulk_execute(connection, context: context).inserted_ids
|
104
107
|
end
|
105
108
|
end
|
106
109
|
|
@@ -131,7 +134,7 @@ describe Mongo::Operation::Insert do
|
|
131
134
|
|
132
135
|
let(:response) do
|
133
136
|
authorized_primary.with_connection do |connection|
|
134
|
-
op.bulk_execute(connection,
|
137
|
+
op.bulk_execute(connection, context: context)
|
135
138
|
end
|
136
139
|
end
|
137
140
|
|
@@ -151,7 +154,7 @@ describe Mongo::Operation::Insert do
|
|
151
154
|
|
152
155
|
let(:response) do
|
153
156
|
authorized_primary.with_connection do |connection|
|
154
|
-
op.bulk_execute(connection,
|
157
|
+
op.bulk_execute(connection, context: context)
|
155
158
|
end
|
156
159
|
end
|
157
160
|
|
@@ -190,7 +193,7 @@ describe Mongo::Operation::Insert do
|
|
190
193
|
|
191
194
|
it 'aborts after first error' do
|
192
195
|
authorized_primary.with_connection do |connection|
|
193
|
-
failing_insert.bulk_execute(connection,
|
196
|
+
failing_insert.bulk_execute(connection, context: context)
|
194
197
|
end
|
195
198
|
expect(authorized_collection.find.count).to eq(1)
|
196
199
|
end
|
@@ -206,7 +209,7 @@ describe Mongo::Operation::Insert do
|
|
206
209
|
|
207
210
|
it 'aborts after first error' do
|
208
211
|
authorized_primary.with_connection do |connection|
|
209
|
-
failing_insert.bulk_execute(connection,
|
212
|
+
failing_insert.bulk_execute(connection, context: context)
|
210
213
|
end
|
211
214
|
expect(authorized_collection.find.count).to eq(1)
|
212
215
|
end
|
@@ -239,7 +242,7 @@ describe Mongo::Operation::Insert do
|
|
239
242
|
|
240
243
|
it 'does not abort after first error' do
|
241
244
|
authorized_primary.with_connection do |connection|
|
242
|
-
failing_insert.bulk_execute(connection,
|
245
|
+
failing_insert.bulk_execute(connection, context: context)
|
243
246
|
end
|
244
247
|
expect(authorized_collection.find.count).to eq(2)
|
245
248
|
end
|
@@ -256,7 +259,7 @@ describe Mongo::Operation::Insert do
|
|
256
259
|
|
257
260
|
it 'does not after first error' do
|
258
261
|
authorized_primary.with_connection do |connection|
|
259
|
-
failing_insert.bulk_execute(connection,
|
262
|
+
failing_insert.bulk_execute(connection, context: context)
|
260
263
|
end
|
261
264
|
expect(authorized_collection.find.count).to eq(2)
|
262
265
|
end
|
@@ -1,6 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Mongo::Operation::Insert do
|
4
|
+
require_no_required_api_version
|
5
|
+
|
6
|
+
let(:context) { Mongo::Operation::Context.new }
|
4
7
|
|
5
8
|
let(:documents) do
|
6
9
|
[{ '_id' => 1,
|
@@ -83,7 +86,7 @@ describe Mongo::Operation::Insert do
|
|
83
86
|
end
|
84
87
|
|
85
88
|
let(:inserted_ids) do
|
86
|
-
insert.execute(authorized_primary,
|
89
|
+
insert.execute(authorized_primary, context: context).inserted_ids
|
87
90
|
end
|
88
91
|
|
89
92
|
let(:collection_ids) do
|
@@ -112,7 +115,7 @@ describe Mongo::Operation::Insert do
|
|
112
115
|
context 'when the insert succeeds' do
|
113
116
|
|
114
117
|
let!(:response) do
|
115
|
-
insert.execute(authorized_primary,
|
118
|
+
insert.execute(authorized_primary, context: context)
|
116
119
|
end
|
117
120
|
|
118
121
|
it 'reports the correct written count' do
|
@@ -144,8 +147,8 @@ describe Mongo::Operation::Insert do
|
|
144
147
|
|
145
148
|
it 'raises an error' do
|
146
149
|
expect {
|
147
|
-
failing_insert.execute(authorized_primary,
|
148
|
-
failing_insert.execute(authorized_primary,
|
150
|
+
failing_insert.execute(authorized_primary, context: context)
|
151
|
+
failing_insert.execute(authorized_primary, context: context)
|
149
152
|
}.to raise_error(Mongo::Error::OperationFailure)
|
150
153
|
end
|
151
154
|
end
|
@@ -163,7 +166,7 @@ describe Mongo::Operation::Insert do
|
|
163
166
|
end
|
164
167
|
|
165
168
|
let!(:response) do
|
166
|
-
insert.execute(authorized_primary,
|
169
|
+
insert.execute(authorized_primary, context: context)
|
167
170
|
end
|
168
171
|
|
169
172
|
it 'reports the correct written count' do
|
@@ -195,8 +198,8 @@ describe Mongo::Operation::Insert do
|
|
195
198
|
|
196
199
|
it 'raises an error' do
|
197
200
|
expect {
|
198
|
-
failing_insert.execute(authorized_primary,
|
199
|
-
failing_insert.execute(authorized_primary,
|
201
|
+
failing_insert.execute(authorized_primary, context: context)
|
202
|
+
failing_insert.execute(authorized_primary, context: context)
|
200
203
|
}.to raise_error(Mongo::Error::OperationFailure)
|
201
204
|
end
|
202
205
|
end
|
@@ -221,8 +224,8 @@ describe Mongo::Operation::Insert do
|
|
221
224
|
|
222
225
|
it 'raises an error' do
|
223
226
|
expect {
|
224
|
-
failing_insert.execute(authorized_primary,
|
225
|
-
failing_insert.execute(authorized_primary,
|
227
|
+
failing_insert.execute(authorized_primary, context: context)
|
228
|
+
failing_insert.execute(authorized_primary, context: context)
|
226
229
|
}.to raise_error(Mongo::Error::OperationFailure)
|
227
230
|
end
|
228
231
|
|
@@ -236,13 +239,13 @@ describe Mongo::Operation::Insert do
|
|
236
239
|
|
237
240
|
it 'raises an error' do
|
238
241
|
expect {
|
239
|
-
insert.execute(authorized_primary,
|
242
|
+
insert.execute(authorized_primary, context: context)
|
240
243
|
}.to raise_error(Mongo::Error::MaxBSONSize)
|
241
244
|
end
|
242
245
|
|
243
246
|
it 'does not insert the document' do
|
244
247
|
expect {
|
245
|
-
insert.execute(authorized_primary,
|
248
|
+
insert.execute(authorized_primary, context: context)
|
246
249
|
}.to raise_error(Mongo::Error::MaxBSONSize)
|
247
250
|
expect(authorized_collection.find.count).to eq(0)
|
248
251
|
end
|
@@ -273,7 +276,7 @@ describe Mongo::Operation::Insert do
|
|
273
276
|
end
|
274
277
|
|
275
278
|
let(:response) do
|
276
|
-
op.execute(authorized_primary,
|
279
|
+
op.execute(authorized_primary, context: context)
|
277
280
|
end
|
278
281
|
|
279
282
|
it 'uses op codes instead of write commands' do
|
@@ -1,6 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Mongo::Operation::MapReduce do
|
4
|
+
require_no_required_api_version
|
5
|
+
|
6
|
+
let(:context) { Mongo::Operation::Context.new }
|
4
7
|
|
5
8
|
let(:map) do
|
6
9
|
%Q{
|
@@ -97,7 +100,7 @@ describe Mongo::Operation::MapReduce do
|
|
97
100
|
context 'when the map/reduce succeeds' do
|
98
101
|
|
99
102
|
let(:response) do
|
100
|
-
op.execute(authorized_primary,
|
103
|
+
op.execute(authorized_primary, context: context)
|
101
104
|
end
|
102
105
|
|
103
106
|
it 'returns the response' do
|
@@ -117,7 +120,7 @@ describe Mongo::Operation::MapReduce do
|
|
117
120
|
|
118
121
|
it 'raises an exception' do
|
119
122
|
expect {
|
120
|
-
op.execute(authorized_primary,
|
123
|
+
op.execute(authorized_primary, context: context)
|
121
124
|
}.to raise_error(Mongo::Error::OperationFailure)
|
122
125
|
end
|
123
126
|
end
|
@@ -1,6 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Mongo::Operation::RemoveUser do
|
4
|
+
require_no_required_api_version
|
5
|
+
|
6
|
+
let(:context) { Mongo::Operation::Context.new }
|
4
7
|
|
5
8
|
describe '#execute' do
|
6
9
|
|
@@ -22,7 +25,7 @@ describe Mongo::Operation::RemoveUser do
|
|
22
25
|
context 'when user removal was successful' do
|
23
26
|
|
24
27
|
let!(:response) do
|
25
|
-
operation.execute(root_authorized_primary,
|
28
|
+
operation.execute(root_authorized_primary, context: context)
|
26
29
|
end
|
27
30
|
|
28
31
|
it 'removes the user from the database' do
|
@@ -33,12 +36,12 @@ describe Mongo::Operation::RemoveUser do
|
|
33
36
|
context 'when removal was not successful' do
|
34
37
|
|
35
38
|
before do
|
36
|
-
operation.execute(root_authorized_primary,
|
39
|
+
operation.execute(root_authorized_primary, context: context)
|
37
40
|
end
|
38
41
|
|
39
42
|
it 'raises an exception' do
|
40
43
|
expect {
|
41
|
-
operation.execute(root_authorized_primary,
|
44
|
+
operation.execute(root_authorized_primary, context: context)
|
42
45
|
}.to raise_error(Mongo::Error::OperationFailure)
|
43
46
|
end
|
44
47
|
end
|
@@ -337,7 +337,7 @@ describe Mongo::Operation::Result do
|
|
337
337
|
it 'raises OperationFailure' do
|
338
338
|
expect do
|
339
339
|
result.validate!
|
340
|
-
end.to raise_error(Mongo::Error::OperationFailure,
|
340
|
+
end.to raise_error(Mongo::Error::OperationFailure, /\[91\]: Replication is being shut down/)
|
341
341
|
end
|
342
342
|
end
|
343
343
|
end
|
@@ -2,6 +2,9 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Mongo::Operation::Update do
|
4
4
|
require_no_multi_shard
|
5
|
+
require_no_required_api_version
|
6
|
+
|
7
|
+
let(:context) { Mongo::Operation::Context.new }
|
5
8
|
|
6
9
|
let(:documents) do
|
7
10
|
[{ :q => { :foo => 1 },
|
@@ -99,7 +102,7 @@ describe Mongo::Operation::Update do
|
|
99
102
|
|
100
103
|
it 'updates the document' do
|
101
104
|
authorized_primary.with_connection do |connection|
|
102
|
-
op.bulk_execute(connection,
|
105
|
+
op.bulk_execute(connection, context: context)
|
103
106
|
end
|
104
107
|
expect(authorized_collection.find(field: 'blah').count).to eq(1)
|
105
108
|
end
|
@@ -125,7 +128,7 @@ describe Mongo::Operation::Update do
|
|
125
128
|
|
126
129
|
it 'updates the documents' 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(field: 'blah').count).to eq(2)
|
131
134
|
end
|
@@ -159,7 +162,7 @@ describe Mongo::Operation::Update do
|
|
159
162
|
|
160
163
|
it 'aborts after first error' do
|
161
164
|
authorized_primary.with_connection do |connection|
|
162
|
-
failing_update.bulk_execute(connection,
|
165
|
+
failing_update.bulk_execute(connection, context: context)
|
163
166
|
end
|
164
167
|
expect(authorized_collection.find(other: 'blah').count).to eq(0)
|
165
168
|
end
|
@@ -173,7 +176,7 @@ describe Mongo::Operation::Update do
|
|
173
176
|
|
174
177
|
it 'aborts after first error' do
|
175
178
|
authorized_primary.with_connection do |connection|
|
176
|
-
failing_update.bulk_execute(connection,
|
179
|
+
failing_update.bulk_execute(connection, context: context)
|
177
180
|
end
|
178
181
|
expect(authorized_collection.find(other: 'blah').count).to eq(0)
|
179
182
|
end
|
@@ -208,7 +211,7 @@ describe Mongo::Operation::Update do
|
|
208
211
|
|
209
212
|
it 'does not abort after first error' do
|
210
213
|
authorized_primary.with_connection do |connection|
|
211
|
-
failing_update.bulk_execute(connection,
|
214
|
+
failing_update.bulk_execute(connection, context: context)
|
212
215
|
end
|
213
216
|
expect(authorized_collection.find(other: 'blah').count).to eq(1)
|
214
217
|
end
|
@@ -222,7 +225,7 @@ describe Mongo::Operation::Update do
|
|
222
225
|
|
223
226
|
it 'does not abort after first error' do
|
224
227
|
authorized_primary.with_connection do |connection|
|
225
|
-
failing_update.bulk_execute(connection,
|
228
|
+
failing_update.bulk_execute(connection, context: context)
|
226
229
|
end
|
227
230
|
expect(authorized_collection.find(other: 'blah').count).to eq(1)
|
228
231
|
end
|