@@ -23,10 +23,10 @@ def get_find_view(op)
2323 'allowDiskUse' , 'returnKey' , 'projection' ,
2424 'skip' , 'hint' , 'maxTimeMS' , 'timeoutMS' ,
2525 'collation' , 'noCursorTimeout' , 'oplogReplay' , 'allowPartialResults' ,
26- 'timeoutMode' ,
26+ 'timeoutMode' , 'maxAwaitTimeMS' , 'cursorType' , 'timeoutMode' ,
2727 { 'showRecordId' => :show_disk_loc , 'max' => :max_value , 'min' => :min_value } ,
2828 allow_extra : true )
29- symbolize_options! ( opts , :timeout_mode )
29+ symbolize_options! ( opts , :timeout_mode , :cursor_type )
3030
3131 opts [ :session ] = entities . get ( :session , session ) if session
3232
@@ -50,49 +50,31 @@ def get_find_view(op)
5050 def count ( op )
5151 collection = entities . get ( :collection , op . use! ( 'object' ) )
5252 use_arguments ( op ) do |args |
53- opts = { }
53+ opts = extract_options ( args , 'comment' , 'timeoutMS' , 'maxTimeMS' , allow_extra : true )
5454 if session = args . use ( 'session' )
5555 opts [ :session ] = entities . get ( :session , session )
5656 end
57- if comment = args . use ( 'comment' )
58- opts [ :comment ] = comment
59- end
60- if timeout_ms = args . use ( 'timeoutMS' )
61- opts [ :timeout_ms ] = timeout_ms
62- end
6357 collection . count ( args . use! ( 'filter' ) , **opts )
6458 end
6559 end
6660
6761 def count_documents ( op )
6862 collection = entities . get ( :collection , op . use! ( 'object' ) )
6963 use_arguments ( op ) do |args |
70- opts = { }
64+ opts = extract_options ( args , 'comment' , 'timeoutMS' , 'maxTimeMS' , allow_extra : true )
7165 if session = args . use ( 'session' )
7266 opts [ :session ] = entities . get ( :session , session )
7367 end
74- if comment = args . use ( 'comment' )
75- opts [ :comment ] = comment
76- end
77- if timeout_ms = args . use ( 'timeoutMS' )
78- opts [ :timeout_ms ] = timeout_ms
79- end
8068 collection . find ( args . use! ( 'filter' ) ) . count_documents ( **opts )
8169 end
8270 end
8371
8472 def estimated_document_count ( op )
8573 collection = entities . get ( :collection , op . use! ( 'object' ) )
8674 use_arguments ( op ) do |args |
87- opts = { }
88- if max_time_ms = args . use ( 'maxTimeMS' )
89- opts [ :max_time_ms ] = max_time_ms
90- end
91- if comment = args . use ( 'comment' )
92- opts [ :comment ] = comment
93- end
94- if timeout_ms = args . use ( 'timeoutMS' )
95- opts [ :timeout_ms ] = timeout_ms
75+ opts = extract_options ( args , 'comment' , 'timeoutMS' , 'maxTimeMS' , allow_extra : true )
76+ if session = args . use ( 'session' )
77+ opts [ :session ] = entities . get ( :session , session )
9678 end
9779 collection . estimated_document_count ( **opts )
9880 end
@@ -101,16 +83,10 @@ def estimated_document_count(op)
10183 def distinct ( op )
10284 collection = entities . get ( :collection , op . use! ( 'object' ) )
10385 use_arguments ( op ) do |args |
104- opts = { }
86+ opts = extract_options ( args , 'comment' , 'timeoutMS' , 'maxTimeMS' , allow_extra : true )
10587 if session = args . use ( 'session' )
10688 opts [ :session ] = entities . get ( :session , session )
10789 end
108- if comment = args . use ( 'comment' )
109- opts [ :comment ] = comment
110- end
111- if timeout_ms = args . use ( 'timeoutMS' )
112- opts [ :timeout_ms ] = timeout_ms
113- end
11490 req = collection . find ( args . use! ( 'filter' ) , **opts ) . distinct ( args . use! ( 'fieldName' ) , **opts )
11591 result = req . to_a
11692 end
@@ -126,16 +102,15 @@ def find_one_and_update(op)
126102 comment : args . use ( 'comment' ) ,
127103 hint : args . use ( 'hint' ) ,
128104 upsert : args . use ( 'upsert' ) ,
105+ timeout_ms : args . use ( 'timeoutMS' ) ,
106+ max_time_ms : args . use ( 'maxTimeMS' )
129107 }
130108 if return_document = args . use ( 'returnDocument' )
131109 opts [ :return_document ] = return_document . downcase . to_sym
132110 end
133111 if session = args . use ( 'session' )
134112 opts [ :session ] = entities . get ( :session , session )
135113 end
136- if timeout_ms = args . use ( 'timeoutMS' )
137- opts [ :timeout_ms ] = timeout_ms
138- end
139114 collection . find_one_and_update ( filter , update , **opts )
140115 end
141116 end
@@ -149,13 +124,12 @@ def find_one_and_replace(op)
149124 let : args . use ( 'let' ) ,
150125 comment : args . use ( 'comment' ) ,
151126 hint : args . use ( 'hint' ) ,
127+ timeout_ms : args . use ( 'timeoutMS' ) ,
128+ max_time_ms : args . use ( 'maxTimeMS' )
152129 }
153130 if session = args . use ( 'session' )
154131 opts [ :session ] = entities . get ( :session , session )
155132 end
156- if timeout_ms = args . use ( 'timeoutMS' )
157- opts [ :timeout_ms ] = timeout_ms
158- end
159133 collection . find_one_and_replace ( filter , update , **opts )
160134 end
161135 end
@@ -168,13 +142,12 @@ def find_one_and_delete(op)
168142 let : args . use ( 'let' ) ,
169143 comment : args . use ( 'comment' ) ,
170144 hint : args . use ( 'hint' ) ,
145+ timeout_ms : args . use ( 'timeoutMS' ) ,
146+ max_time_ms : args . use ( 'maxTimeMS' )
171147 }
172148 if session = args . use ( 'session' )
173149 opts [ :session ] = entities . get ( :session , session )
174150 end
175- if timeout_ms = args . use ( 'timeoutMS' )
176- opts [ :timeout_ms ] = timeout_ms
177- end
178151 collection . find_one_and_delete ( filter , **opts )
179152 end
180153 end
@@ -184,7 +157,8 @@ def insert_one(op)
184157 use_arguments ( op ) do |args |
185158 opts = {
186159 comment : args . use ( 'comment' ) ,
187- timeout_ms : args . use ( 'timeoutMS' )
160+ timeout_ms : args . use ( 'timeoutMS' ) ,
161+ max_time_ms : args . use ( 'maxTimeMS' )
188162 }
189163 if session = args . use ( 'session' )
190164 opts [ :session ] = entities . get ( :session , session )
@@ -197,17 +171,16 @@ def insert_many(op)
197171 collection = entities . get ( :collection , op . use! ( 'object' ) )
198172 use_arguments ( op ) do |args |
199173 opts = {
200- comment : args . use ( 'comment' )
174+ comment : args . use ( 'comment' ) ,
175+ timeout_ms : args . use ( 'timeoutMS' ) ,
176+ max_time_ms : args . use ( 'maxTimeMS' )
201177 }
202178 unless ( ordered = args . use ( 'ordered' ) ) . nil?
203179 opts [ :ordered ] = ordered
204180 end
205181 if session = args . use ( 'session' )
206182 opts [ :session ] = entities . get ( :session , session )
207183 end
208- if timeout_ms = args . use ( 'timeoutMS' )
209- opts [ :timeout_ms ] = timeout_ms
210- end
211184 collection . insert_many ( args . use! ( 'documents' ) , **opts )
212185 end
213186 end
@@ -221,6 +194,7 @@ def update_one(op)
221194 hint : args . use ( 'hint' ) ,
222195 upsert : args . use ( 'upsert' ) ,
223196 timeout_ms : args . use ( 'timeoutMS' ) ,
197+ max_time_ms : args . use ( 'maxTimeMS' )
224198 }
225199 if session = args . use ( 'session' )
226200 opts [ :session ] = entities . get ( :session , session )
@@ -237,6 +211,7 @@ def update_many(op)
237211 comment : args . use ( 'comment' ) ,
238212 hint : args . use ( 'hint' ) ,
239213 timeout_ms : args . use ( 'timeoutMS' ) ,
214+ max_time_ms : args . use ( 'maxTimeMS' )
240215 }
241216 collection . update_many ( args . use! ( 'filter' ) , args . use! ( 'update' ) , **opts )
242217 end
@@ -252,7 +227,8 @@ def replace_one(op)
252227 upsert : args . use ( 'upsert' ) ,
253228 let : args . use ( 'let' ) ,
254229 hint : args . use ( 'hint' ) ,
255- timeout_ms : args . use ( 'timeoutMS' )
230+ timeout_ms : args . use ( 'timeoutMS' ) ,
231+ max_time_ms : args . use ( 'maxTimeMS' )
256232 )
257233 end
258234 end
@@ -264,13 +240,12 @@ def delete_one(op)
264240 let : args . use ( 'let' ) ,
265241 comment : args . use ( 'comment' ) ,
266242 hint : args . use ( 'hint' ) ,
243+ timeout_ms : args . use ( 'timeoutMS' ) ,
244+ max_time_ms : args . use ( 'maxTimeMS' )
267245 }
268246 if session = args . use ( 'session' )
269247 opts [ :session ] = entities . get ( :session , session )
270248 end
271- if timeout_ms = args . use ( 'timeoutMS' )
272- opts [ :timeout_ms ] = timeout_ms
273- end
274249 collection . delete_one ( args . use! ( 'filter' ) , **opts )
275250 end
276251 end
@@ -282,6 +257,8 @@ def delete_many(op)
282257 let : args . use ( 'let' ) ,
283258 comment : args . use ( 'comment' ) ,
284259 hint : args . use ( 'hint' ) ,
260+ timeout_ms : args . use ( 'timeoutMS' ) ,
261+ max_time_ms : args . use ( 'maxTimeMS' )
285262 }
286263 collection . delete_many ( args . use! ( 'filter' ) , **opts )
287264 end
@@ -306,6 +283,9 @@ def bulk_write(op)
306283 if timeout_ms = args . use ( 'timeoutMS' )
307284 opts [ :timeout_ms ] = timeout_ms
308285 end
286+ if max_time_ms = args . use ( 'maxTimeMS' )
287+ opts [ :max_time_ms ] = max_time_ms
288+ end
309289 collection . bulk_write ( requests , **opts )
310290 end
311291 end
@@ -315,18 +295,14 @@ def aggregate(op)
315295 args = op . use! ( 'arguments' )
316296 pipeline = args . use! ( 'pipeline' )
317297
318- opts = extract_options ( args , 'let' , 'comment' , 'batchSize' ,
319- 'allowDiskUse' , 'timeoutMode' , 'timeoutMS' , allow_extra : true )
298+ opts = extract_options ( args , 'let' , 'comment' , 'batchSize' , 'maxTimeMS' ,
299+ 'allowDiskUse' , 'timeoutMode' , 'timeoutMS' , 'maxTimeMS' , allow_extra : true )
320300 symbolize_options! ( opts , :timeout_mode )
321301
322302 if session = args . use ( 'session' )
323303 opts [ :session ] = entities . get ( :session , session )
324304 end
325305
326- if timeout_ms = args . use ( 'timeoutMS' )
327- opts [ :timeout_ms ] = timeout_ms
328- end
329-
330306 unless args . empty?
331307 raise NotImplementedError , "Unhandled spec keys: #{ args } in #{ test_spec } "
332308 end
@@ -339,7 +315,8 @@ def create_find_cursor(op)
339315 args = op . use! ( 'arguments' )
340316
341317 filter = args . use ( 'filter' )
342- opts = extract_options ( args , 'batchSize' , 'timeoutMS' )
318+ opts = extract_options ( args , 'batchSize' , 'timeoutMS' , 'cursorType' , 'maxAwaitTimeMS' )
319+ symbolize_options! ( opts , :cursor_type )
343320
344321 view = obj . find ( filter , opts )
345322 view . each # to initialize the cursor
0 commit comments