mongo 2.0.6 → 2.1.0
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 +5 -2
- data/lib/mongo/address/ipv4.rb +6 -1
- data/lib/mongo/address/unix.rb +2 -2
- data/lib/mongo/address.rb +18 -10
- data/lib/mongo/auth/cr/conversation.rb +1 -1
- data/lib/mongo/auth/ldap/conversation.rb +7 -3
- data/lib/mongo/auth/scram/conversation.rb +9 -3
- data/lib/mongo/auth/user/view.rb +23 -2
- data/lib/mongo/auth/x509/conversation.rb +1 -1
- data/lib/mongo/bulk_write/combineable.rb +51 -0
- data/lib/mongo/bulk_write/ordered_combiner.rb +55 -0
- data/lib/mongo/bulk_write/result.rb +191 -0
- data/lib/mongo/bulk_write/result_combiner.rb +117 -0
- data/lib/mongo/bulk_write/transformable.rb +132 -0
- data/lib/mongo/bulk_write/unordered_combiner.rb +52 -0
- data/lib/mongo/bulk_write/validatable.rb +62 -0
- data/lib/mongo/bulk_write.rb +159 -23
- data/lib/mongo/client.rb +52 -16
- data/lib/mongo/cluster/topology/replica_set.rb +27 -9
- data/lib/mongo/cluster/topology/sharded.rb +1 -1
- data/lib/mongo/cluster/topology/unknown.rb +5 -2
- data/lib/mongo/cluster.rb +42 -7
- data/lib/mongo/collection/view/aggregation.rb +48 -9
- data/lib/mongo/collection/view/immutable.rb +6 -6
- data/lib/mongo/collection/view/iterable.rb +18 -4
- data/lib/mongo/collection/view/map_reduce.rb +58 -17
- data/lib/mongo/collection/view/readable.rb +173 -42
- data/lib/mongo/collection/view/writable.rb +37 -23
- data/lib/mongo/collection/view.rb +2 -2
- data/lib/mongo/collection.rb +370 -33
- data/lib/mongo/cursor.rb +15 -3
- data/lib/mongo/database/view.rb +5 -4
- data/lib/mongo/database.rb +14 -4
- data/lib/mongo/dbref.rb +113 -0
- data/lib/mongo/error/closed_stream.rb +34 -0
- data/lib/mongo/error/extra_file_chunk.rb +34 -0
- data/lib/mongo/error/{invalid_uri_option.rb → file_not_found.rb} +11 -12
- data/lib/mongo/error/invalid_file.rb +2 -2
- data/lib/mongo/error/invalid_file_revision.rb +37 -0
- data/lib/mongo/error/invalid_uri.rb +5 -4
- data/lib/mongo/error/missing_file_chunk.rb +38 -0
- data/lib/mongo/error/operation_failure.rb +1 -1
- data/lib/mongo/error/parser.rb +1 -1
- data/lib/mongo/error/unchangeable_collection_option.rb +38 -0
- data/lib/mongo/error/unexpected_chunk_length.rb +39 -0
- data/lib/mongo/error.rb +13 -2
- data/lib/mongo/event/description_changed.rb +1 -1
- data/lib/mongo/grid/file/chunk.rb +6 -6
- data/lib/mongo/grid/file/{metadata.rb → info.rb} +41 -39
- data/lib/mongo/grid/file.rb +13 -10
- data/lib/mongo/grid/fs_bucket.rb +448 -0
- data/lib/mongo/grid/stream/read.rb +208 -0
- data/lib/mongo/grid/stream/write.rb +187 -0
- data/lib/mongo/grid/stream.rb +64 -0
- data/lib/mongo/grid.rb +2 -1
- data/lib/mongo/index/view.rb +3 -3
- data/lib/mongo/index.rb +5 -0
- data/lib/mongo/loggable.rb +34 -57
- data/lib/mongo/logger.rb +16 -78
- data/lib/mongo/monitoring/command_log_subscriber.rb +112 -0
- data/lib/mongo/monitoring/event/command_failed.rb +96 -0
- data/lib/mongo/monitoring/event/command_started.rb +89 -0
- data/lib/mongo/monitoring/event/command_succeeded.rb +118 -0
- data/lib/mongo/monitoring/event/secure.rb +58 -0
- data/lib/mongo/monitoring/event.rb +18 -0
- data/lib/mongo/monitoring/publishable.rb +106 -0
- data/lib/mongo/monitoring.rb +195 -0
- data/lib/mongo/operation/{aggregate.rb → commands/aggregate.rb} +3 -41
- data/lib/mongo/operation/commands/collections_info/result.rb +39 -0
- data/lib/mongo/operation/commands/collections_info.rb +68 -0
- data/lib/mongo/operation/{command.rb → commands/command.rb} +2 -18
- data/lib/mongo/operation/commands/indexes.rb +70 -0
- data/lib/mongo/operation/commands/list_collections/result.rb +112 -0
- data/lib/mongo/operation/commands/list_collections.rb +54 -0
- data/lib/mongo/operation/commands/list_indexes/result.rb +116 -0
- data/lib/mongo/operation/commands/list_indexes.rb +56 -0
- data/lib/mongo/operation/{map_reduce → commands/map_reduce}/result.rb +1 -1
- data/lib/mongo/operation/{map_reduce.rb → commands/map_reduce.rb} +3 -41
- data/lib/mongo/operation/commands/parallel_scan/result.rb +72 -0
- data/lib/mongo/operation/commands/parallel_scan.rb +56 -0
- data/lib/mongo/operation/commands/user_query.rb +69 -0
- data/lib/mongo/{bulk_write/ordered_bulk_write.rb → operation/commands/users_info/result.rb} +18 -30
- data/lib/mongo/operation/commands/users_info.rb +53 -0
- data/lib/mongo/operation/commands.rb +24 -0
- data/lib/mongo/operation/executable.rb +4 -68
- data/lib/mongo/operation/kill_cursors.rb +3 -3
- data/lib/mongo/operation/read/get_more.rb +2 -22
- data/lib/mongo/{bulk_write/unordered_bulk_write.rb → operation/read/query/result.rb} +20 -26
- data/lib/mongo/operation/read/query.rb +4 -21
- data/lib/mongo/operation/read.rb +0 -4
- data/lib/mongo/operation/{read_preferrable.rb → read_preference.rb} +3 -2
- data/lib/mongo/operation/result.rb +13 -1
- data/lib/mongo/operation/specifiable.rb +42 -0
- data/lib/mongo/operation/write/bulk/bulkable.rb +82 -0
- data/lib/mongo/operation/write/bulk/delete/result.rb +74 -0
- data/lib/mongo/operation/write/bulk/delete.rb +71 -0
- data/lib/mongo/operation/write/bulk/insert/result.rb +129 -0
- data/lib/mongo/operation/write/bulk/insert.rb +96 -0
- data/lib/mongo/operation/write/bulk/legacy_mergable.rb +87 -0
- data/lib/mongo/operation/write/bulk/mergable.rb +71 -0
- data/lib/mongo/operation/write/bulk/update/result.rb +174 -0
- data/lib/mongo/operation/write/bulk/update.rb +81 -0
- data/lib/mongo/operation/write/bulk.rb +6 -3
- data/lib/mongo/operation/write/command/create_index.rb +0 -1
- data/lib/mongo/operation/write/command/create_user.rb +0 -1
- data/lib/mongo/operation/write/command/delete.rb +0 -1
- data/lib/mongo/operation/write/command/drop_index.rb +0 -1
- data/lib/mongo/operation/write/command/insert.rb +0 -1
- data/lib/mongo/operation/write/command/remove_user.rb +0 -1
- data/lib/mongo/operation/write/command/update.rb +0 -1
- data/lib/mongo/operation/write/command/update_user.rb +0 -1
- data/lib/mongo/operation/write/command/writable.rb +13 -18
- data/lib/mongo/operation/write/create_index.rb +4 -27
- data/lib/mongo/operation/write/create_user.rb +4 -30
- data/lib/mongo/operation/write/delete.rb +6 -29
- data/lib/mongo/operation/write/drop_index.rb +3 -3
- data/lib/mongo/operation/write/gle.rb +48 -0
- data/lib/mongo/operation/write/idable.rb +5 -0
- data/lib/mongo/operation/write/insert.rb +2 -24
- data/lib/mongo/operation/write/remove_user.rb +4 -27
- data/lib/mongo/operation/write/update.rb +13 -36
- data/lib/mongo/operation/write/update_user.rb +4 -30
- data/lib/mongo/operation/write/write_command_enabled.rb +53 -0
- data/lib/mongo/operation/write.rb +2 -0
- data/lib/mongo/operation.rb +32 -4
- data/lib/mongo/options/mapper.rb +4 -2
- data/lib/mongo/options/redacted.rb +156 -0
- data/lib/mongo/options.rb +1 -0
- data/lib/mongo/protocol/delete.rb +75 -15
- data/lib/mongo/protocol/get_more.rb +65 -13
- data/lib/mongo/protocol/insert.rb +85 -13
- data/lib/mongo/protocol/kill_cursors.rb +59 -14
- data/lib/mongo/protocol/message.rb +12 -12
- data/lib/mongo/protocol/query.rb +163 -37
- data/lib/mongo/protocol/reply.rb +103 -0
- data/lib/mongo/protocol/serializers.rb +1 -1
- data/lib/mongo/protocol/update.rb +82 -14
- data/lib/mongo/retryable.rb +83 -0
- data/lib/mongo/server/connectable.rb +21 -25
- data/lib/mongo/server/connection.rb +75 -4
- data/lib/mongo/server/connection_pool/queue.rb +15 -0
- data/lib/mongo/server/connection_pool.rb +12 -0
- data/lib/mongo/server/description/features.rb +2 -1
- data/lib/mongo/server/description.rb +52 -1
- data/lib/mongo/server/monitor/connection.rb +26 -2
- data/lib/mongo/server/monitor.rb +19 -3
- data/lib/mongo/server.rb +39 -5
- data/lib/mongo/server_selector/selectable.rb +40 -31
- data/lib/mongo/server_selector.rb +19 -10
- data/lib/mongo/socket/ssl.rb +28 -16
- data/lib/mongo/socket/tcp.rb +3 -3
- data/lib/mongo/socket/unix.rb +5 -8
- data/lib/mongo/socket.rb +11 -4
- data/lib/mongo/uri.rb +248 -137
- data/lib/mongo/version.rb +1 -1
- data/lib/mongo.rb +5 -3
- data/spec/mongo/address/unix_spec.rb +1 -1
- data/spec/mongo/address_spec.rb +25 -0
- data/spec/mongo/auth/cr_spec.rb +9 -1
- data/spec/mongo/auth/ldap/conversation_spec.rb +43 -0
- data/spec/mongo/auth/ldap_spec.rb +9 -1
- data/spec/mongo/auth/scram_spec.rb +9 -1
- data/spec/mongo/auth/user/view_spec.rb +26 -1
- data/spec/mongo/auth/x509_spec.rb +9 -1
- data/spec/mongo/bulk_write/ordered_combiner_spec.rb +271 -0
- data/spec/mongo/bulk_write/unordered_combiner_spec.rb +239 -0
- data/spec/mongo/bulk_write_spec.rb +428 -0
- data/spec/mongo/client_spec.rb +167 -17
- data/spec/mongo/cluster/topology/replica_set_spec.rb +18 -9
- data/spec/mongo/cluster/topology/sharded_spec.rb +11 -3
- data/spec/mongo/cluster/topology/single_spec.rb +12 -4
- data/spec/mongo/cluster_spec.rb +55 -10
- data/spec/mongo/collection/view/aggregation_spec.rb +188 -1
- data/spec/mongo/collection/view/explainable_spec.rb +1 -1
- data/spec/mongo/collection/view/immutable_spec.rb +103 -0
- data/spec/mongo/collection/view/map_reduce_spec.rb +99 -4
- data/spec/mongo/collection/view/readable_spec.rb +238 -6
- data/spec/mongo/collection/view/writable_spec.rb +4 -4
- data/spec/mongo/collection/view_spec.rb +459 -71
- data/spec/mongo/collection_spec.rb +1291 -9
- data/spec/mongo/command_monitoring_spec.rb +51 -0
- data/spec/mongo/connection_string_spec.rb +115 -0
- data/spec/mongo/crud_spec.rb +2 -2
- data/spec/mongo/cursor_spec.rb +3 -3
- data/spec/mongo/database_spec.rb +47 -11
- data/spec/mongo/dbref_spec.rb +149 -0
- data/spec/mongo/grid/file/chunk_spec.rb +5 -5
- data/spec/mongo/grid/file/{metadata_spec.rb → info_spec.rb} +29 -17
- data/spec/mongo/grid/file_spec.rb +8 -8
- data/spec/mongo/grid/fs_bucket_spec.rb +1020 -0
- data/spec/mongo/grid/stream/read_spec.rb +275 -0
- data/spec/mongo/grid/stream/write_spec.rb +440 -0
- data/spec/mongo/grid/stream_spec.rb +48 -0
- data/spec/mongo/gridfs_spec.rb +50 -0
- data/spec/mongo/logger_spec.rb +0 -40
- data/spec/mongo/monitoring/command_log_subscriber_spec.rb +76 -0
- data/spec/mongo/monitoring/event/command_started_spec.rb +26 -0
- data/spec/mongo/monitoring/event/command_succeeded_spec.rb +26 -0
- data/spec/mongo/monitoring/event/secure_spec.rb +57 -0
- data/spec/mongo/monitoring_spec.rb +168 -0
- data/spec/mongo/operation/commands/aggregate_spec.rb +69 -0
- data/spec/mongo/operation/{read → commands}/collections_info_spec.rb +1 -1
- data/spec/mongo/operation/{command_spec.rb → commands/command_spec.rb} +0 -18
- data/spec/mongo/operation/{read → commands}/indexes_spec.rb +1 -1
- data/spec/mongo/operation/{map_reduce_spec.rb → commands/map_reduce_spec.rb} +1 -19
- data/spec/mongo/operation/kill_cursors_spec.rb +1 -17
- data/spec/mongo/operation/read/get_more_spec.rb +0 -16
- data/spec/mongo/operation/read/query_spec.rb +19 -16
- data/spec/mongo/operation/{read_preferrable_spec.rb → read_preference_spec.rb} +11 -11
- data/spec/mongo/operation/write/bulk/{bulk_delete_spec.rb → delete_spec.rb} +18 -29
- data/spec/mongo/operation/write/bulk/{bulk_insert_spec.rb → insert_spec.rb} +3 -14
- data/spec/mongo/operation/write/bulk/{bulk_update_spec.rb → update_spec.rb} +8 -19
- data/spec/mongo/operation/write/command/delete_spec.rb +0 -16
- data/spec/mongo/operation/write/command/insert_spec.rb +0 -16
- data/spec/mongo/operation/write/command/update_spec.rb +0 -16
- data/spec/mongo/operation/write/delete_spec.rb +4 -4
- data/spec/mongo/operation/write/insert_spec.rb +2 -13
- data/spec/mongo/operation/write/update_spec.rb +7 -7
- data/spec/mongo/options/redacted_spec.rb +350 -0
- data/spec/mongo/protocol/kill_cursors_spec.rb +5 -3
- data/spec/mongo/protocol/query_spec.rb +15 -30
- data/spec/mongo/retryable_spec.rb +147 -0
- data/spec/mongo/server/connection_pool/queue_spec.rb +16 -0
- data/spec/mongo/server/connection_pool_spec.rb +50 -6
- data/spec/mongo/server/connection_spec.rb +49 -4
- data/spec/mongo/server/description_spec.rb +49 -3
- data/spec/mongo/server/monitor_spec.rb +51 -0
- data/spec/mongo/server_discovery_and_monitoring_spec.rb +32 -59
- data/spec/mongo/server_selection_rtt_spec.rb +37 -57
- data/spec/mongo/server_selection_spec.rb +19 -9
- data/spec/mongo/server_selector/nearest_spec.rb +35 -27
- data/spec/mongo/server_selector/primary_preferred_spec.rb +32 -30
- data/spec/mongo/server_selector/primary_spec.rb +21 -14
- data/spec/mongo/server_selector/secondary_preferred_spec.rb +28 -26
- data/spec/mongo/server_selector/secondary_spec.rb +24 -22
- data/spec/mongo/server_selector_spec.rb +87 -24
- data/spec/mongo/server_spec.rb +94 -8
- data/spec/mongo/socket/ssl_spec.rb +123 -13
- data/spec/mongo/socket/unix_spec.rb +52 -0
- data/spec/mongo/uri_spec.rb +295 -67
- data/spec/spec_helper.rb +40 -24
- data/spec/support/authorization.rb +23 -9
- data/spec/support/certificates/client.pem +4 -4
- data/spec/support/command_monitoring/bulkWrite.yml +73 -0
- data/spec/support/command_monitoring/command.yml +42 -0
- data/spec/support/command_monitoring/deleteMany.yml +55 -0
- data/spec/support/command_monitoring/deleteOne.yml +55 -0
- data/spec/support/command_monitoring/find.yml +219 -0
- data/spec/support/command_monitoring/insertMany.yml +81 -0
- data/spec/support/command_monitoring/insertOne.yml +51 -0
- data/spec/support/command_monitoring/updateMany.yml +67 -0
- data/spec/support/command_monitoring/updateOne.yml +95 -0
- data/spec/support/command_monitoring.rb +365 -0
- data/spec/support/connection_string.rb +228 -0
- data/spec/support/connection_string_tests/invalid-uris.yml +193 -0
- data/spec/support/connection_string_tests/valid-auth.yml +256 -0
- data/spec/support/connection_string_tests/valid-host_identifiers.yml +121 -0
- data/spec/support/connection_string_tests/valid-options.yml +30 -0
- data/spec/support/connection_string_tests/valid-unix_socket-absolute.yml +197 -0
- data/spec/support/connection_string_tests/valid-unix_socket-relative.yml +213 -0
- data/spec/support/connection_string_tests/valid-warnings.yml +55 -0
- data/spec/support/crud/read.rb +22 -19
- data/spec/support/crud/write.rb +58 -27
- data/spec/support/crud.rb +10 -2
- data/spec/support/gridfs.rb +637 -0
- data/spec/support/gridfs_tests/delete.yml +157 -0
- data/spec/support/gridfs_tests/download.yml +210 -0
- data/spec/support/gridfs_tests/download_by_name.yml +113 -0
- data/spec/support/gridfs_tests/upload.yml +158 -0
- data/spec/support/matchers.rb +1 -1
- data/spec/support/sdam/rs/equal_electionids.yml +44 -0
- data/spec/support/sdam/rs/new_primary_new_electionid.yml +95 -0
- data/spec/support/sdam/rs/null_election_id.yml +144 -0
- data/spec/support/sdam/rs/primary_disconnect_electionid.yml +124 -0
- data/spec/support/sdam/rs/primary_mismatched_me.yml +37 -0
- data/spec/support/sdam/rs/primary_to_no_primary_mismatched_me.yml +75 -0
- data/spec/support/sdam/rs/secondary_mismatched_me.yml +37 -0
- data/spec/support/sdam/sharded/mongos_disconnect.yml +104 -0
- data/spec/support/sdam/single/direct_connection_rsarbiter.yml +1 -1
- data/spec/support/sdam/single/direct_connection_rsprimary.yml +1 -1
- data/spec/support/sdam/single/direct_connection_rssecondary.yml +1 -1
- data/spec/support/sdam/single/direct_connection_slave.yml +1 -1
- data/spec/support/sdam/single/direct_connection_standalone.yml +1 -1
- data/spec/support/sdam/single/not_ok_response.yml +0 -1
- data/spec/support/server_discovery_and_monitoring.rb +22 -3
- data/spec/support/server_selection.rb +3 -1
- data/spec/support/shared/bulk_write.rb +218 -22
- data/spec/support/shared/server_selector.rb +80 -14
- data.tar.gz.sig +0 -0
- metadata +188 -59
- metadata.gz.sig +0 -0
- data/lib/mongo/bulk_write/bulk_writable.rb +0 -196
- data/lib/mongo/bulk_write/deletable.rb +0 -56
- data/lib/mongo/bulk_write/insertable.rb +0 -48
- data/lib/mongo/bulk_write/replacable.rb +0 -57
- data/lib/mongo/bulk_write/updatable.rb +0 -68
- data/lib/mongo/grid/fs.rb +0 -149
- data/lib/mongo/operation/list_collections/result.rb +0 -114
- data/lib/mongo/operation/list_indexes/result.rb +0 -118
- data/lib/mongo/operation/read/collections_info.rb +0 -68
- data/lib/mongo/operation/read/indexes.rb +0 -69
- data/lib/mongo/operation/read/list_collections.rb +0 -76
- data/lib/mongo/operation/read/list_indexes.rb +0 -78
- data/lib/mongo/operation/write/bulk/bulk_delete/result.rb +0 -75
- data/lib/mongo/operation/write/bulk/bulk_delete.rb +0 -145
- data/lib/mongo/operation/write/bulk/bulk_insert/result.rb +0 -130
- data/lib/mongo/operation/write/bulk/bulk_insert.rb +0 -132
- data/lib/mongo/operation/write/bulk/bulk_mergable.rb +0 -67
- data/lib/mongo/operation/write/bulk/bulk_update/result.rb +0 -162
- data/lib/mongo/operation/write/bulk/bulk_update.rb +0 -154
- data/lib/mongo/operation/write/bulk/legacy_bulk_mergable.rb +0 -83
- data/spec/mongo/bulk/bulk_write_spec.rb +0 -262
- data/spec/mongo/grid/fs_spec.rb +0 -160
- data/spec/mongo/loggable_spec.rb +0 -63
- data/spec/mongo/operation/aggregate_spec.rb +0 -127
- /data/lib/mongo/operation/{aggregate → commands/aggregate}/result.rb +0 -0
@@ -45,6 +45,15 @@ module Mongo
|
|
45
45
|
client.cluster.instance_variable_get(:@servers).detect{ |s| s.address.to_s == uri }
|
46
46
|
end
|
47
47
|
|
48
|
+
# Helper to convert an extended JSON ObjectId electionId to BSON::ObjectId.
|
49
|
+
#
|
50
|
+
# @since 2.1.0
|
51
|
+
def self.convert_election_ids(docs)
|
52
|
+
docs.each do |doc |
|
53
|
+
doc['electionId'] = BSON::ObjectId.from_string(doc['electionId']['$oid']) if doc['electionId']
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
48
57
|
# Represents a specification.
|
49
58
|
#
|
50
59
|
# @since 2.0.0
|
@@ -71,7 +80,9 @@ module Mongo
|
|
71
80
|
#
|
72
81
|
# @since 2.0.0
|
73
82
|
def initialize(file)
|
74
|
-
|
83
|
+
file = File.new(file)
|
84
|
+
@test = YAML.load(ERB.new(file.read).result)
|
85
|
+
file.close
|
75
86
|
@description = @test['description']
|
76
87
|
@uri_string = @test['uri']
|
77
88
|
@uri = URI.new(uri_string)
|
@@ -102,7 +113,7 @@ module Mongo
|
|
102
113
|
# @since 2.0.0
|
103
114
|
def initialize(phase, uri)
|
104
115
|
@phase = phase
|
105
|
-
@responses = @phase['responses'].map{ |response| Response.new(response, uri) }
|
116
|
+
@responses = @phase['responses'].map{ |response| Response.new(SDAM::convert_election_ids(response), uri) }
|
106
117
|
@outcome = Outcome.new(@phase['outcome'])
|
107
118
|
end
|
108
119
|
end
|
@@ -158,10 +169,18 @@ module Mongo
|
|
158
169
|
#
|
159
170
|
# @since 2.0.0
|
160
171
|
def initialize(outcome)
|
161
|
-
@servers = outcome['servers']
|
172
|
+
@servers = process_servers(outcome['servers'])
|
162
173
|
@set_name = outcome['setName']
|
163
174
|
@topology_type = outcome['topologyType']
|
164
175
|
end
|
176
|
+
|
177
|
+
private
|
178
|
+
|
179
|
+
def process_servers(servers)
|
180
|
+
servers.each do |s|
|
181
|
+
SDAM::convert_election_ids([ s[1] ])
|
182
|
+
end
|
183
|
+
end
|
165
184
|
end
|
166
185
|
end
|
167
186
|
end
|
@@ -70,7 +70,9 @@ module Mongo
|
|
70
70
|
#
|
71
71
|
# @since 2.0.0
|
72
72
|
def initialize(file)
|
73
|
-
|
73
|
+
file = File.new(file)
|
74
|
+
@test = YAML.load(ERB.new(file.read).result)
|
75
|
+
file.close
|
74
76
|
@description = "#{@test['topology_description']['type']}: #{File.basename(file)}"
|
75
77
|
@read_preference = @test['read_preference']
|
76
78
|
@read_preference['mode'] = READ_PREFERENCES[@read_preference['mode']]
|
@@ -28,6 +28,19 @@ shared_examples 'a bulk write object' do
|
|
28
28
|
|
29
29
|
context 'when an insert_one operation is provided' do
|
30
30
|
|
31
|
+
context 'when there is a write failure' do
|
32
|
+
|
33
|
+
let(:operations) do
|
34
|
+
[{ insert_one: { _id: 1 }}, { insert_one: { _id: 1 }}]
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'raises a BulkWriteError' do
|
38
|
+
expect {
|
39
|
+
bulk.execute
|
40
|
+
}.to raise_error(Mongo::Error::BulkWriteError)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
31
44
|
context 'when a document is provided' do
|
32
45
|
|
33
46
|
let(:operations) do
|
@@ -35,13 +48,34 @@ shared_examples 'a bulk write object' do
|
|
35
48
|
end
|
36
49
|
|
37
50
|
it 'returns n_inserted of 1' do
|
38
|
-
expect(bulk.execute
|
51
|
+
expect(bulk.execute.inserted_count).to eq(1)
|
39
52
|
end
|
40
53
|
|
41
54
|
it 'only inserts that document' do
|
42
55
|
bulk.execute
|
43
56
|
expect(authorized_collection.find.first['name']).to eq('test')
|
44
57
|
end
|
58
|
+
|
59
|
+
context 'when there is a write concern error' do
|
60
|
+
|
61
|
+
context 'when the server version is < 2.6' do
|
62
|
+
|
63
|
+
it 'raises a BulkWriteError', if: !write_command_enabled? && standalone? do
|
64
|
+
expect {
|
65
|
+
bulk_invalid_write_concern.execute
|
66
|
+
}.to raise_error(Mongo::Error::BulkWriteError)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
context 'when the server version has write commands enabled' do
|
71
|
+
|
72
|
+
it 'raises an OperationFailure', if: write_command_enabled? && standalone? do
|
73
|
+
expect {
|
74
|
+
bulk_invalid_write_concern.execute
|
75
|
+
}.to raise_error(Mongo::Error::OperationFailure)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
45
79
|
end
|
46
80
|
|
47
81
|
context 'when an invalid object is provided' do
|
@@ -94,13 +128,34 @@ shared_examples 'a bulk write object' do
|
|
94
128
|
context 'when multiple documents match delete selector' do
|
95
129
|
|
96
130
|
it 'reports n_removed correctly' do
|
97
|
-
expect(bulk.execute
|
131
|
+
expect(bulk.execute.deleted_count).to eq(1)
|
98
132
|
end
|
99
133
|
|
100
134
|
it 'deletes only matching documents' do
|
101
135
|
bulk.execute
|
102
136
|
expect(authorized_collection.find.projection(_id: 0).to_a).to eq(expected)
|
103
137
|
end
|
138
|
+
|
139
|
+
context 'when there is a write concern error' do
|
140
|
+
|
141
|
+
context 'when the server version is < 2.6' do
|
142
|
+
|
143
|
+
it 'raises a BulkWriteError', if: !write_command_enabled? && standalone? do
|
144
|
+
expect {
|
145
|
+
bulk_invalid_write_concern.execute
|
146
|
+
}.to raise_error(Mongo::Error::BulkWriteError)
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
context 'when the server version has write commands enabled' do
|
151
|
+
|
152
|
+
it 'raises an OperationFailure', if: write_command_enabled? && standalone? do
|
153
|
+
expect {
|
154
|
+
bulk_invalid_write_concern.execute
|
155
|
+
}.to raise_error(Mongo::Error::OperationFailure)
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|
104
159
|
end
|
105
160
|
end
|
106
161
|
|
@@ -136,13 +191,34 @@ shared_examples 'a bulk write object' do
|
|
136
191
|
context 'when multiple documents match delete selector' do
|
137
192
|
|
138
193
|
it 'reports n_removed correctly' do
|
139
|
-
expect(bulk.execute
|
194
|
+
expect(bulk.execute.deleted_count).to eq(2)
|
140
195
|
end
|
141
196
|
|
142
197
|
it 'deletes all matching documents' do
|
143
198
|
bulk.execute
|
144
199
|
expect(authorized_collection.find.to_a).to be_empty
|
145
200
|
end
|
201
|
+
|
202
|
+
context 'when there is a write concern error' do
|
203
|
+
|
204
|
+
context 'when the server version is < 2.6' do
|
205
|
+
|
206
|
+
it 'raises a BulkWriteError', if: !write_command_enabled? && standalone? do
|
207
|
+
expect {
|
208
|
+
bulk_invalid_write_concern.execute
|
209
|
+
}.to raise_error(Mongo::Error::BulkWriteError)
|
210
|
+
end
|
211
|
+
end
|
212
|
+
|
213
|
+
context 'when the server version has write commands enabled' do
|
214
|
+
|
215
|
+
it 'raises an OperationFailure', if: write_command_enabled? && standalone? do
|
216
|
+
expect {
|
217
|
+
bulk_invalid_write_concern.execute
|
218
|
+
}.to raise_error(Mongo::Error::OperationFailure)
|
219
|
+
end
|
220
|
+
end
|
221
|
+
end
|
146
222
|
end
|
147
223
|
|
148
224
|
context 'when only one document matches delete selector' do
|
@@ -156,7 +232,7 @@ shared_examples 'a bulk write object' do
|
|
156
232
|
end
|
157
233
|
|
158
234
|
it 'reports n_removed correctly' do
|
159
|
-
expect(bulk.execute
|
235
|
+
expect(bulk.execute.deleted_count).to eq(1)
|
160
236
|
end
|
161
237
|
|
162
238
|
it 'deletes all matching documents' do
|
@@ -233,7 +309,7 @@ shared_examples 'a bulk write object' do
|
|
233
309
|
end
|
234
310
|
|
235
311
|
it 'reports n_matched correctly' do
|
236
|
-
expect(bulk.execute
|
312
|
+
expect(bulk.execute.matched_count).to eq(1)
|
237
313
|
end
|
238
314
|
|
239
315
|
it 'only applies the replacement to one matching document' do
|
@@ -241,6 +317,27 @@ shared_examples 'a bulk write object' do
|
|
241
317
|
expect(authorized_collection.find.projection(_id: 0).to_a).to eq(expected)
|
242
318
|
end
|
243
319
|
|
320
|
+
context 'when there is a write concern error' do
|
321
|
+
|
322
|
+
context 'when the server version is < 2.6' do
|
323
|
+
|
324
|
+
it 'raises a BulkWriteError', if: !write_command_enabled? && standalone? do
|
325
|
+
expect {
|
326
|
+
bulk_invalid_write_concern.execute
|
327
|
+
}.to raise_error(Mongo::Error::BulkWriteError)
|
328
|
+
end
|
329
|
+
end
|
330
|
+
|
331
|
+
context 'when the server version has write commands enabled' do
|
332
|
+
|
333
|
+
it 'raises an OperationFailure', if: write_command_enabled? && standalone? do
|
334
|
+
expect {
|
335
|
+
bulk_invalid_write_concern.execute
|
336
|
+
}.to raise_error(Mongo::Error::OperationFailure)
|
337
|
+
end
|
338
|
+
end
|
339
|
+
end
|
340
|
+
|
244
341
|
context 'when upsert is true' do
|
245
342
|
|
246
343
|
let(:operations) do
|
@@ -260,7 +357,7 @@ shared_examples 'a bulk write object' do
|
|
260
357
|
end
|
261
358
|
|
262
359
|
it 'reports n_matched correctly' do
|
263
|
-
expect(bulk.execute
|
360
|
+
expect(bulk.execute.matched_count).to eq(0)
|
264
361
|
end
|
265
362
|
|
266
363
|
it 'does not replace any documents' do
|
@@ -296,6 +393,22 @@ shared_examples 'a bulk write object' do
|
|
296
393
|
[{ 'a' => 2 }, { 'a' => 1 }]
|
297
394
|
end
|
298
395
|
|
396
|
+
context 'when there is a write failure' do
|
397
|
+
|
398
|
+
let(:operations) do
|
399
|
+
[{ update_one: { find: { a: 1 },
|
400
|
+
update: { '$st' => { field: 'blah' } },
|
401
|
+
upsert: false }
|
402
|
+
}]
|
403
|
+
end
|
404
|
+
|
405
|
+
it 'raises a BulkWriteError' do
|
406
|
+
expect {
|
407
|
+
bulk.execute
|
408
|
+
}.to raise_error(Mongo::Error::BulkWriteError)
|
409
|
+
end
|
410
|
+
end
|
411
|
+
|
299
412
|
context 'when an update document is not specified' do
|
300
413
|
|
301
414
|
let(:operations) do
|
@@ -331,19 +444,19 @@ shared_examples 'a bulk write object' do
|
|
331
444
|
context 'when a valid update document is specified' do
|
332
445
|
|
333
446
|
it 'reports n_modified correctly', if: write_command_enabled? do
|
334
|
-
expect(bulk.execute
|
447
|
+
expect(bulk.execute.modified_count).to eq(1)
|
335
448
|
end
|
336
449
|
|
337
450
|
it 'reports n_modified correctly', unless: write_command_enabled? do
|
338
|
-
expect(bulk.execute
|
451
|
+
expect(bulk.execute.modified_count).to eq(nil)
|
339
452
|
end
|
340
453
|
|
341
454
|
it 'reports n_upserted correctly' do
|
342
|
-
expect(bulk.execute
|
455
|
+
expect(bulk.execute.upserted_count).to eq(0)
|
343
456
|
end
|
344
457
|
|
345
458
|
it 'reports n_matched correctly' do
|
346
|
-
expect(bulk.execute
|
459
|
+
expect(bulk.execute.matched_count).to eq(1)
|
347
460
|
end
|
348
461
|
|
349
462
|
it 'applies the correct writes' do
|
@@ -351,6 +464,27 @@ shared_examples 'a bulk write object' do
|
|
351
464
|
expect(authorized_collection.find.projection(_id: 0).to_a).to eq(expected)
|
352
465
|
end
|
353
466
|
|
467
|
+
context 'when there is a write concern error' do
|
468
|
+
|
469
|
+
context 'when the server version is < 2.6' do
|
470
|
+
|
471
|
+
it 'raises a BulkWriteError', if: !write_command_enabled? && standalone? do
|
472
|
+
expect {
|
473
|
+
bulk_invalid_write_concern.execute
|
474
|
+
}.to raise_error(Mongo::Error::BulkWriteError)
|
475
|
+
end
|
476
|
+
end
|
477
|
+
|
478
|
+
context 'when the server version has write commands enabled' do
|
479
|
+
|
480
|
+
it 'raises an OperationFailure', if: write_command_enabled? && standalone? do
|
481
|
+
expect {
|
482
|
+
bulk_invalid_write_concern.execute
|
483
|
+
}.to raise_error(Mongo::Error::OperationFailure)
|
484
|
+
end
|
485
|
+
end
|
486
|
+
end
|
487
|
+
|
354
488
|
context 'when upsert is true' do
|
355
489
|
|
356
490
|
let(:operations) do
|
@@ -365,19 +499,23 @@ shared_examples 'a bulk write object' do
|
|
365
499
|
end
|
366
500
|
|
367
501
|
it 'reports n_modified correctly', if: write_command_enabled? do
|
368
|
-
expect(bulk.execute
|
502
|
+
expect(bulk.execute.modified_count).to eq(0)
|
369
503
|
end
|
370
504
|
|
371
505
|
it 'reports n_modified correctly', unless: write_command_enabled? do
|
372
|
-
expect(bulk.execute
|
506
|
+
expect(bulk.execute.modified_count).to eq(nil)
|
373
507
|
end
|
374
508
|
|
375
509
|
it 'reports n_upserted correctly' do
|
376
|
-
expect(bulk.execute
|
510
|
+
expect(bulk.execute.upserted_count).to eq(1)
|
511
|
+
end
|
512
|
+
|
513
|
+
it 'returns the upserted ids', if: write_command_enabled? do
|
514
|
+
expect(bulk.execute.upserted_ids.size).to eq(1)
|
377
515
|
end
|
378
516
|
|
379
517
|
it 'reports n_matched correctly' do
|
380
|
-
expect(bulk.execute
|
518
|
+
expect(bulk.execute.matched_count).to eq(0)
|
381
519
|
end
|
382
520
|
|
383
521
|
it 'applies the correct writes' do
|
@@ -413,6 +551,22 @@ shared_examples 'a bulk write object' do
|
|
413
551
|
authorized_collection.insert_many(docs)
|
414
552
|
end
|
415
553
|
|
554
|
+
context 'when there is a write failure' do
|
555
|
+
|
556
|
+
let(:operations) do
|
557
|
+
[{ update_many: { find: { a: 1 },
|
558
|
+
update: { '$st' => { field: 'blah' } },
|
559
|
+
upsert: false }
|
560
|
+
}]
|
561
|
+
end
|
562
|
+
|
563
|
+
it 'raises an BulkWriteError' do
|
564
|
+
expect {
|
565
|
+
bulk.execute
|
566
|
+
}.to raise_error(Mongo::Error::BulkWriteError)
|
567
|
+
end
|
568
|
+
end
|
569
|
+
|
416
570
|
context 'when an update document is not specified' do
|
417
571
|
|
418
572
|
let(:operations) do
|
@@ -444,19 +598,19 @@ shared_examples 'a bulk write object' do
|
|
444
598
|
context 'when a valid update document is specified' do
|
445
599
|
|
446
600
|
it 'reports n_modified correctly', if: write_command_enabled? do
|
447
|
-
expect(bulk.execute
|
601
|
+
expect(bulk.execute.modified_count).to eq(2)
|
448
602
|
end
|
449
603
|
|
450
604
|
it 'reports n_modified correctly', unless: write_command_enabled? do
|
451
|
-
expect(bulk.execute
|
605
|
+
expect(bulk.execute.modified_count).to eq(nil)
|
452
606
|
end
|
453
607
|
|
454
608
|
it 'reports n_upserted correctly' do
|
455
|
-
expect(bulk.execute
|
609
|
+
expect(bulk.execute.upserted_count).to eq(0)
|
456
610
|
end
|
457
611
|
|
458
612
|
it 'reports n_matched correctly' do
|
459
|
-
expect(bulk.execute
|
613
|
+
expect(bulk.execute.matched_count).to eq(2)
|
460
614
|
end
|
461
615
|
|
462
616
|
it 'applies the correct writes' do
|
@@ -464,6 +618,27 @@ shared_examples 'a bulk write object' do
|
|
464
618
|
expect(authorized_collection.find.projection(_id: 0).to_a).to eq(expected)
|
465
619
|
end
|
466
620
|
|
621
|
+
context 'when there is a write concern error' do
|
622
|
+
|
623
|
+
context 'when the server version is < 2.6' do
|
624
|
+
|
625
|
+
it 'raises a BulkWriteError', if: !write_command_enabled? && standalone? do
|
626
|
+
expect {
|
627
|
+
bulk_invalid_write_concern.execute
|
628
|
+
}.to raise_error(Mongo::Error::BulkWriteError)
|
629
|
+
end
|
630
|
+
end
|
631
|
+
|
632
|
+
context 'when the server version has write commands enabled' do
|
633
|
+
|
634
|
+
it 'raises an OperationFailure', if: write_command_enabled? && standalone? do
|
635
|
+
expect {
|
636
|
+
bulk_invalid_write_concern.execute
|
637
|
+
}.to raise_error(Mongo::Error::OperationFailure)
|
638
|
+
end
|
639
|
+
end
|
640
|
+
end
|
641
|
+
|
467
642
|
context 'when upsert is true' do
|
468
643
|
|
469
644
|
let(:operations) do
|
@@ -478,19 +653,19 @@ shared_examples 'a bulk write object' do
|
|
478
653
|
end
|
479
654
|
|
480
655
|
it 'reports n_modified correctly', if: write_command_enabled? do
|
481
|
-
expect(bulk.execute
|
656
|
+
expect(bulk.execute.modified_count).to eq(0)
|
482
657
|
end
|
483
658
|
|
484
659
|
it 'reports n_modified correctly', unless: write_command_enabled? do
|
485
|
-
expect(bulk.execute
|
660
|
+
expect(bulk.execute.modified_count).to eq(nil)
|
486
661
|
end
|
487
662
|
|
488
663
|
it 'reports n_upserted correctly' do
|
489
|
-
expect(bulk.execute
|
664
|
+
expect(bulk.execute.upserted_count).to eq(1)
|
490
665
|
end
|
491
666
|
|
492
667
|
it 'reports n_matched correctly' do
|
493
|
-
expect(bulk.execute
|
668
|
+
expect(bulk.execute.matched_count).to eq(0)
|
494
669
|
end
|
495
670
|
|
496
671
|
it 'applies the correct writes' do
|
@@ -531,5 +706,26 @@ shared_examples 'a bulk write object' do
|
|
531
706
|
bulk.execute
|
532
707
|
expect(authorized_collection.find(x: { '$lte' => 3000 }).to_a.size).to eq(3000)
|
533
708
|
end
|
709
|
+
|
710
|
+
context 'when there is a write concern error' do
|
711
|
+
|
712
|
+
context 'when the server version is < 2.6' do
|
713
|
+
|
714
|
+
it 'raises a BulkWriteError', if: !write_command_enabled? && standalone? do
|
715
|
+
expect {
|
716
|
+
bulk_invalid_write_concern.execute
|
717
|
+
}.to raise_error(Mongo::Error::BulkWriteError)
|
718
|
+
end
|
719
|
+
end
|
720
|
+
|
721
|
+
context 'when the server version has write commands enabled' do
|
722
|
+
|
723
|
+
it 'raises an OperationFailure', if: write_command_enabled? && standalone? do
|
724
|
+
expect {
|
725
|
+
bulk_invalid_write_concern.execute
|
726
|
+
}.to raise_error(Mongo::Error::OperationFailure)
|
727
|
+
end
|
728
|
+
end
|
729
|
+
end
|
534
730
|
end
|
535
731
|
end
|
@@ -11,9 +11,10 @@ def server(mode, options = {})
|
|
11
11
|
}
|
12
12
|
|
13
13
|
listeners = Mongo::Event::Listeners.new
|
14
|
-
|
14
|
+
monitoring = Mongo::Monitoring.new
|
15
|
+
address = Mongo::Address.new(DEFAULT_ADDRESS)
|
15
16
|
|
16
|
-
server = Mongo::Server.new(address, double('cluster'), listeners, TEST_OPTIONS)
|
17
|
+
server = Mongo::Server.new(address, double('cluster'), monitoring, listeners, TEST_OPTIONS)
|
17
18
|
description = Mongo::Server::Description.new(address, ismaster, average_round_trip_time)
|
18
19
|
server.tap do |s|
|
19
20
|
allow(s).to receive(:description).and_return(description)
|
@@ -21,7 +22,7 @@ def server(mode, options = {})
|
|
21
22
|
end
|
22
23
|
|
23
24
|
shared_context 'server selector' do
|
24
|
-
|
25
|
+
|
25
26
|
let(:tag_sets) { [] }
|
26
27
|
let(:tag_set) do
|
27
28
|
{ 'test' => 'tag' }
|
@@ -31,37 +32,82 @@ shared_context 'server selector' do
|
|
31
32
|
end
|
32
33
|
let(:primary) { server(:primary) }
|
33
34
|
let(:secondary) { server(:secondary) }
|
35
|
+
let(:options) { { :mode => name, :tag_sets => tag_sets } }
|
36
|
+
let(:selector) { described_class.new(options) }
|
37
|
+
|
38
|
+
before(:all) do
|
39
|
+
module Mongo
|
40
|
+
# We monkey-patch the server here, so the monitors do not run and no
|
41
|
+
# real TCP connection is attempted.
|
42
|
+
#
|
43
|
+
# @since 2.1.0
|
44
|
+
class Server
|
45
|
+
|
46
|
+
alias :original_initialize :initialize
|
47
|
+
def initialize(address, cluster, monitoring, event_listeners, options = {})
|
48
|
+
@address = address
|
49
|
+
@cluster = cluster
|
50
|
+
@monitoring = monitoring
|
51
|
+
@options = options.freeze
|
52
|
+
@monitor = Monitor.new(address, event_listeners, options)
|
53
|
+
end
|
54
|
+
|
55
|
+
alias :original_disconnect! :disconnect!
|
56
|
+
def disconnect!; true; end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
after(:all) do
|
62
|
+
|
63
|
+
# Return the server implementation to its original for the other
|
64
|
+
# tests in the suite.
|
65
|
+
module Mongo
|
66
|
+
class Server
|
67
|
+
alias :initialize :original_initialize
|
68
|
+
remove_method(:original_initialize)
|
69
|
+
|
70
|
+
alias :disconnect! :original_disconnect!
|
71
|
+
remove_method(:original_disconnect!)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
34
75
|
end
|
35
76
|
|
36
|
-
shared_examples 'a
|
77
|
+
shared_examples 'a server selector mode' do
|
37
78
|
|
38
79
|
describe '#name' do
|
39
80
|
|
40
81
|
it 'returns the name' do
|
41
|
-
expect(
|
82
|
+
expect(selector.name).to eq(name)
|
42
83
|
end
|
43
84
|
end
|
44
85
|
|
45
86
|
describe '#slave_ok?' do
|
46
87
|
|
47
88
|
it 'returns whether the slave_ok bit should be set' do
|
48
|
-
expect(
|
89
|
+
expect(selector.slave_ok?).to eq(slave_ok)
|
49
90
|
end
|
50
91
|
end
|
51
92
|
|
52
93
|
describe '#==' do
|
53
94
|
|
54
95
|
context 'when mode is the same' do
|
55
|
-
|
96
|
+
|
97
|
+
let(:other) do
|
98
|
+
described_class.new
|
99
|
+
end
|
56
100
|
|
57
101
|
context 'tag sets are the same' do
|
102
|
+
|
58
103
|
it 'returns true' do
|
59
|
-
expect(
|
104
|
+
expect(selector).to eq(other)
|
60
105
|
end
|
61
106
|
end
|
62
107
|
end
|
63
108
|
|
64
109
|
context 'mode is different' do
|
110
|
+
|
65
111
|
let(:other) do
|
66
112
|
double('selectable').tap do |mode|
|
67
113
|
allow(mode).to receive(:name).and_return(:other)
|
@@ -69,28 +115,31 @@ shared_examples 'a read preference mode' do
|
|
69
115
|
end
|
70
116
|
|
71
117
|
it 'returns false' do
|
72
|
-
expect(
|
118
|
+
expect(selector).not_to eq(other)
|
73
119
|
end
|
74
120
|
end
|
75
121
|
end
|
76
122
|
end
|
77
123
|
|
78
|
-
shared_examples 'a
|
124
|
+
shared_examples 'a server selector accepting tag sets' do
|
79
125
|
|
80
126
|
describe '#tag_sets' do
|
81
127
|
|
82
128
|
context 'tags not provided' do
|
83
129
|
|
84
130
|
it 'returns an empty array' do
|
85
|
-
expect(
|
131
|
+
expect(selector.tag_sets).to be_empty
|
86
132
|
end
|
87
133
|
end
|
88
134
|
|
89
135
|
context 'tag sets provided' do
|
90
|
-
|
136
|
+
|
137
|
+
let(:tag_sets) do
|
138
|
+
[ tag_set ]
|
139
|
+
end
|
91
140
|
|
92
141
|
it 'returns the tag sets' do
|
93
|
-
expect(
|
142
|
+
expect(selector.tag_sets).to eq(tag_sets)
|
94
143
|
end
|
95
144
|
end
|
96
145
|
end
|
@@ -103,9 +152,26 @@ shared_examples 'a read preference mode accepting tag sets' do
|
|
103
152
|
let(:tag_sets) { { 'other' => 'tag' } }
|
104
153
|
|
105
154
|
it 'returns false' do
|
106
|
-
expect(
|
155
|
+
expect(selector).not_to eq(other)
|
107
156
|
end
|
108
157
|
end
|
109
158
|
end
|
110
159
|
end
|
111
160
|
end
|
161
|
+
|
162
|
+
shared_examples 'a server selector with sensitive data in its options' do
|
163
|
+
|
164
|
+
describe '#inspect' do
|
165
|
+
|
166
|
+
context 'when there is sensitive data in the options' do
|
167
|
+
|
168
|
+
let(:options) do
|
169
|
+
Mongo::Options::Redacted.new(:mode => name, :password => 'sensitive_data')
|
170
|
+
end
|
171
|
+
|
172
|
+
it 'does not print out sensitive data' do
|
173
|
+
expect(selector.inspect).not_to match(options[:password])
|
174
|
+
end
|
175
|
+
end
|
176
|
+
end
|
177
|
+
end
|
data.tar.gz.sig
CHANGED
Binary file
|