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.
Files changed (230) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/README.md +4 -1
  5. data/Rakefile +8 -15
  6. data/lib/mongo.rb +23 -0
  7. data/lib/mongo/auth/aws/conversation.rb +1 -4
  8. data/lib/mongo/auth/base.rb +13 -7
  9. data/lib/mongo/auth/conversation_base.rb +32 -0
  10. data/lib/mongo/auth/cr/conversation.rb +6 -29
  11. data/lib/mongo/auth/gssapi/conversation.rb +4 -15
  12. data/lib/mongo/auth/ldap/conversation.rb +3 -14
  13. data/lib/mongo/auth/sasl_conversation_base.rb +1 -13
  14. data/lib/mongo/auth/scram_conversation_base.rb +7 -34
  15. data/lib/mongo/auth/user/view.rb +16 -9
  16. data/lib/mongo/auth/x509/conversation.rb +4 -25
  17. data/lib/mongo/background_thread.rb +11 -0
  18. data/lib/mongo/bulk_write.rb +21 -18
  19. data/lib/mongo/client.rb +82 -6
  20. data/lib/mongo/cluster.rb +19 -28
  21. data/lib/mongo/cluster/reapers/cursor_reaper.rb +6 -2
  22. data/lib/mongo/cluster/sdam_flow.rb +14 -0
  23. data/lib/mongo/collection.rb +8 -6
  24. data/lib/mongo/collection/view/aggregation.rb +1 -1
  25. data/lib/mongo/collection/view/change_stream.rb +1 -1
  26. data/lib/mongo/collection/view/iterable.rb +1 -1
  27. data/lib/mongo/collection/view/map_reduce.rb +2 -2
  28. data/lib/mongo/collection/view/readable.rb +42 -20
  29. data/lib/mongo/collection/view/writable.rb +14 -14
  30. data/lib/mongo/cursor.rb +2 -2
  31. data/lib/mongo/database.rb +22 -5
  32. data/lib/mongo/database/view.rb +1 -1
  33. data/lib/mongo/error.rb +9 -1
  34. data/lib/mongo/error/bulk_write_error.rb +17 -3
  35. data/lib/mongo/error/internal_driver_error.rb +22 -0
  36. data/lib/mongo/error/operation_failure.rb +21 -2
  37. data/lib/mongo/error/parser.rb +65 -12
  38. data/lib/mongo/error/server_api_conflict.rb +23 -0
  39. data/lib/mongo/error/server_api_not_supported.rb +24 -0
  40. data/lib/mongo/error/unmet_dependency.rb +21 -0
  41. data/lib/mongo/grid/fs_bucket.rb +37 -37
  42. data/lib/mongo/index/view.rb +21 -11
  43. data/lib/mongo/monitoring.rb +13 -4
  44. data/lib/mongo/monitoring/event/server_heartbeat_failed.rb +27 -16
  45. data/lib/mongo/monitoring/event/server_heartbeat_succeeded.rb +26 -15
  46. data/lib/mongo/operation.rb +2 -2
  47. data/lib/mongo/operation/collections_info.rb +18 -1
  48. data/lib/mongo/operation/collections_info/command.rb +2 -2
  49. data/lib/mongo/operation/context.rb +99 -0
  50. data/lib/mongo/operation/indexes.rb +15 -1
  51. data/lib/mongo/operation/insert/command.rb +2 -2
  52. data/lib/mongo/operation/insert/legacy.rb +2 -2
  53. data/lib/mongo/operation/insert/op_msg.rb +2 -2
  54. data/lib/mongo/operation/list_collections/result.rb +4 -1
  55. data/lib/mongo/operation/result.rb +2 -0
  56. data/lib/mongo/operation/shared/executable.rb +24 -14
  57. data/lib/mongo/operation/shared/executable_no_validate.rb +2 -2
  58. data/lib/mongo/operation/shared/op_msg_or_command.rb +1 -7
  59. data/lib/mongo/operation/shared/op_msg_or_find_command.rb +1 -7
  60. data/lib/mongo/operation/shared/polymorphic_operation.rb +39 -0
  61. data/lib/mongo/operation/shared/response_handling.rb +23 -23
  62. data/lib/mongo/operation/shared/sessions_supported.rb +13 -2
  63. data/lib/mongo/operation/shared/write.rb +8 -18
  64. data/lib/mongo/protocol/compressed.rb +51 -5
  65. data/lib/mongo/protocol/message.rb +20 -2
  66. data/lib/mongo/protocol/msg.rb +36 -11
  67. data/lib/mongo/query_cache.rb +30 -0
  68. data/lib/mongo/retryable.rb +1 -1
  69. data/lib/mongo/server.rb +7 -15
  70. data/lib/mongo/server/app_metadata.rb +52 -18
  71. data/lib/mongo/server/connection.rb +5 -0
  72. data/lib/mongo/server/connection_base.rb +13 -10
  73. data/lib/mongo/server/connection_pool.rb +6 -4
  74. data/lib/mongo/server/description.rb +4 -0
  75. data/lib/mongo/server/description/features.rb +9 -8
  76. data/lib/mongo/server/monitor.rb +20 -1
  77. data/lib/mongo/server/monitor/app_metadata.rb +1 -1
  78. data/lib/mongo/server/monitor/connection.rb +9 -10
  79. data/lib/mongo/server/pending_connection.rb +24 -6
  80. data/lib/mongo/server/push_monitor.rb +11 -1
  81. data/lib/mongo/session.rb +2 -2
  82. data/lib/mongo/session/session_pool.rb +4 -2
  83. data/lib/mongo/socket.rb +29 -4
  84. data/lib/mongo/socket/ssl.rb +8 -0
  85. data/lib/mongo/srv/monitor.rb +0 -11
  86. data/lib/mongo/uri/options_mapper.rb +38 -0
  87. data/lib/mongo/utils.rb +15 -0
  88. data/lib/mongo/version.rb +1 -1
  89. data/spec/README.md +24 -1
  90. data/spec/integration/auth_spec.rb +25 -15
  91. data/spec/integration/bulk_write_error_message_spec.rb +41 -0
  92. data/spec/integration/change_stream_spec.rb +4 -4
  93. data/spec/integration/command_monitoring_spec.rb +2 -2
  94. data/spec/integration/connection_spec.rb +2 -0
  95. data/spec/integration/docs_examples_spec.rb +8 -1
  96. data/spec/integration/fork_reconnect_spec.rb +4 -1
  97. data/spec/integration/ocsp_verifier_spec.rb +13 -7
  98. data/spec/integration/operation_failure_code_spec.rb +1 -1
  99. data/spec/integration/operation_failure_message_spec.rb +90 -0
  100. data/spec/integration/reconnect_spec.rb +1 -1
  101. data/spec/integration/sdam_error_handling_spec.rb +1 -1
  102. data/spec/integration/sdam_events_spec.rb +3 -5
  103. data/spec/integration/snappy_compression_spec.rb +25 -0
  104. data/spec/integration/srv_monitoring_spec.rb +1 -1
  105. data/spec/integration/transactions_examples_spec.rb +6 -0
  106. data/spec/integration/zlib_compression_spec.rb +1 -1
  107. data/spec/integration/zstd_compression_spec.rb +26 -0
  108. data/spec/lite_spec_helper.rb +7 -1
  109. data/spec/mongo/address_spec.rb +15 -11
  110. data/spec/mongo/auth/ldap/conversation_spec.rb +1 -1
  111. data/spec/mongo/auth/ldap_spec.rb +5 -1
  112. data/spec/mongo/auth/scram_negotiation_spec.rb +1 -1
  113. data/spec/mongo/auth/scram_spec.rb +1 -1
  114. data/spec/mongo/auth/x509/conversation_spec.rb +3 -3
  115. data/spec/mongo/client_construction_spec.rb +207 -33
  116. data/spec/mongo/client_spec.rb +17 -0
  117. data/spec/mongo/cluster_spec.rb +3 -18
  118. data/spec/mongo/collection/view/explainable_spec.rb +1 -1
  119. data/spec/mongo/collection/view/readable_spec.rb +33 -19
  120. data/spec/mongo/collection_crud_spec.rb +4357 -0
  121. data/spec/mongo/collection_ddl_spec.rb +534 -0
  122. data/spec/mongo/collection_spec.rb +5 -4859
  123. data/spec/mongo/database_spec.rb +66 -4
  124. data/spec/mongo/error/bulk_write_error_spec.rb +3 -3
  125. data/spec/mongo/error/parser_spec.rb +37 -6
  126. data/spec/mongo/index/view_spec.rb +8 -2
  127. data/spec/mongo/monitoring/event/server_heartbeat_failed_spec.rb +1 -1
  128. data/spec/mongo/monitoring/event/server_heartbeat_succeeded_spec.rb +1 -1
  129. data/spec/mongo/operation/aggregate_spec.rb +2 -1
  130. data/spec/mongo/operation/collections_info_spec.rb +4 -1
  131. data/spec/mongo/operation/command_spec.rb +6 -3
  132. data/spec/mongo/operation/create_index_spec.rb +6 -3
  133. data/spec/mongo/operation/create_user_spec.rb +6 -3
  134. data/spec/mongo/operation/delete/bulk_spec.rb +9 -6
  135. data/spec/mongo/operation/delete_spec.rb +11 -7
  136. data/spec/mongo/operation/drop_index_spec.rb +6 -2
  137. data/spec/mongo/operation/find/legacy_spec.rb +3 -1
  138. data/spec/mongo/operation/get_more_spec.rb +3 -1
  139. data/spec/mongo/operation/indexes_spec.rb +5 -1
  140. data/spec/mongo/operation/insert/bulk_spec.rb +10 -7
  141. data/spec/mongo/operation/insert_spec.rb +15 -12
  142. data/spec/mongo/operation/map_reduce_spec.rb +5 -2
  143. data/spec/mongo/operation/remove_user_spec.rb +6 -3
  144. data/spec/mongo/operation/result_spec.rb +1 -1
  145. data/spec/mongo/operation/update/bulk_spec.rb +9 -6
  146. data/spec/mongo/operation/update_spec.rb +10 -7
  147. data/spec/mongo/operation/update_user_spec.rb +4 -1
  148. data/spec/mongo/protocol/compressed_spec.rb +26 -12
  149. data/spec/mongo/query_cache_middleware_spec.rb +55 -0
  150. data/spec/mongo/retryable_spec.rb +3 -2
  151. data/spec/mongo/server/app_metadata_spec.rb +2 -0
  152. data/spec/mongo/server/connection_pool/populator_spec.rb +3 -1
  153. data/spec/mongo/server/connection_pool_spec.rb +1 -1
  154. data/spec/mongo/server/connection_spec.rb +24 -17
  155. data/spec/mongo/server/monitor/connection_spec.rb +17 -7
  156. data/spec/mongo/server/monitor_spec.rb +9 -1
  157. data/spec/mongo/server_spec.rb +15 -2
  158. data/spec/mongo/socket/ssl_spec.rb +40 -0
  159. data/spec/mongo/socket_spec.rb +2 -2
  160. data/spec/mongo/tls_context_hooks_spec.rb +37 -0
  161. data/spec/runners/connection_string.rb +0 -4
  162. data/spec/runners/crud/requirement.rb +40 -3
  163. data/spec/runners/crud/verifier.rb +8 -0
  164. data/spec/runners/transactions/operation.rb +13 -2
  165. data/spec/runners/transactions/test.rb +1 -0
  166. data/spec/runners/unified.rb +96 -0
  167. data/spec/runners/unified/assertions.rb +249 -0
  168. data/spec/runners/unified/change_stream_operations.rb +26 -0
  169. data/spec/runners/unified/crud_operations.rb +199 -0
  170. data/spec/runners/unified/ddl_operations.rb +96 -0
  171. data/spec/runners/unified/entity_map.rb +39 -0
  172. data/spec/runners/unified/error.rb +25 -0
  173. data/spec/runners/unified/event_subscriber.rb +91 -0
  174. data/spec/runners/unified/exceptions.rb +21 -0
  175. data/spec/runners/unified/grid_fs_operations.rb +55 -0
  176. data/spec/runners/unified/support_operations.rb +250 -0
  177. data/spec/runners/unified/test.rb +393 -0
  178. data/spec/runners/unified/test_group.rb +28 -0
  179. data/spec/runners/unified/using_hash.rb +31 -0
  180. data/spec/shared/bin/get-mongodb-download-url +17 -0
  181. data/spec/shared/lib/mrss/cluster_config.rb +218 -0
  182. data/spec/shared/lib/mrss/constraints.rb +43 -0
  183. data/spec/shared/lib/mrss/docker_runner.rb +262 -0
  184. data/spec/shared/lib/mrss/server_version_registry.rb +112 -0
  185. data/spec/shared/lib/mrss/utils.rb +15 -0
  186. data/spec/shared/share/Dockerfile.erb +231 -0
  187. data/spec/shared/shlib/distro.sh +73 -0
  188. data/spec/shared/shlib/server.sh +290 -0
  189. data/spec/shared/shlib/set_env.sh +128 -0
  190. data/spec/solo/clean_exit_spec.rb +21 -0
  191. data/spec/spec_helper.rb +4 -1
  192. data/spec/spec_tests/crud_unified_spec.rb +10 -0
  193. data/spec/spec_tests/data/change_streams/change-streams.yml +0 -1
  194. data/spec/spec_tests/data/crud_unified/estimatedDocumentCount.yml +267 -0
  195. data/spec/spec_tests/data/retryable_reads/estimatedDocumentCount-4.9.yml +60 -0
  196. data/spec/spec_tests/data/retryable_reads/{estimatedDocumentCount.yml → estimatedDocumentCount-pre4.9.yml} +2 -0
  197. data/spec/spec_tests/data/retryable_reads/estimatedDocumentCount-serverErrors-4.9.yml +146 -0
  198. data/spec/spec_tests/data/retryable_reads/{estimatedDocumentCount-serverErrors.yml → estimatedDocumentCount-serverErrors-pre4.9.yml} +2 -0
  199. data/spec/spec_tests/data/retryable_reads/listIndexNames.yml +1 -1
  200. data/spec/spec_tests/data/unified/valid-fail/operation-failure.yml +31 -0
  201. data/spec/spec_tests/data/unified/valid-pass/poc-change-streams.yml +220 -0
  202. data/spec/spec_tests/data/unified/valid-pass/poc-command-monitoring.yml +102 -0
  203. data/spec/spec_tests/data/unified/valid-pass/poc-crud.yml +184 -0
  204. data/spec/spec_tests/data/unified/valid-pass/poc-gridfs.yml +155 -0
  205. data/spec/spec_tests/data/unified/valid-pass/poc-retryable-reads.yml +193 -0
  206. data/spec/spec_tests/data/unified/valid-pass/poc-retryable-writes.yml +210 -0
  207. data/spec/spec_tests/data/unified/valid-pass/poc-sessions.yml +215 -0
  208. data/spec/spec_tests/data/unified/valid-pass/poc-transactions-convenient-api.yml +235 -0
  209. data/spec/spec_tests/data/unified/valid-pass/poc-transactions-mongos-pin-auto.yml +169 -0
  210. data/spec/spec_tests/data/unified/valid-pass/poc-transactions.yml +170 -0
  211. data/spec/spec_tests/data/uri_options/compression-options.yml +1 -1
  212. data/spec/spec_tests/data/versioned_api/crud-api-version-1-strict.yml +416 -0
  213. data/spec/spec_tests/data/versioned_api/crud-api-version-1.yml +409 -0
  214. data/spec/spec_tests/data/versioned_api/runcommand-helper-no-api-version-declared.yml +67 -0
  215. data/spec/spec_tests/data/versioned_api/test-commands-deprecation-errors.yml +47 -0
  216. data/spec/spec_tests/data/versioned_api/test-commands-strict-mode.yml +44 -0
  217. data/spec/spec_tests/data/versioned_api/transaction-handling.yml +180 -0
  218. data/spec/spec_tests/unified_spec.rb +15 -0
  219. data/spec/spec_tests/uri_options_spec.rb +16 -0
  220. data/spec/spec_tests/versioned_api_spec.rb +10 -0
  221. data/spec/support/common_shortcuts.rb +15 -1
  222. data/spec/support/shared/session.rb +2 -2
  223. data/spec/support/spec_config.rb +46 -3
  224. data/spec/support/spec_setup.rb +48 -38
  225. data/spec/support/utils.rb +64 -3
  226. metadata +1104 -992
  227. metadata.gz.sig +0 -0
  228. data/lib/mongo/operation/shared/collections_info_or_list_collections.rb +0 -58
  229. data/lib/mongo/operation/shared/op_msg_or_list_indexes_command.rb +0 -47
  230. 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, client: nil)
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, client: nil)
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, client: nil)
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, client: nil)
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, client: nil)
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, client: nil)
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, client: nil)
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, client: nil)
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, client: nil)
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, client: nil)).to be_a(Mongo::Operation::Find::Legacy::Result)
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, client: nil)
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, client: nil)
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, client: nil).inserted_ids
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, client: nil)
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, client: nil)
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, client: nil)
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, client: nil)
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, client: nil)
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, client: nil)
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, client: nil).inserted_ids
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, client: nil)
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, client: nil)
148
- failing_insert.execute(authorized_primary, client: nil)
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, client: nil)
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, client: nil)
199
- failing_insert.execute(authorized_primary, client: nil)
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, client: nil)
225
- failing_insert.execute(authorized_primary, client: nil)
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, client: nil)
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, client: nil)
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, client: nil)
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, client: nil)
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, client: nil)
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, client: nil)
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, client: nil)
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, client: nil)
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, /Replication is being shut down \(91\)/)
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, client: nil)
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, client: nil)
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, client: nil)
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, client: nil)
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, client: nil)
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, client: nil)
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