@@ -144,6 +144,31 @@ def _run() -> None:
144
144
md .update (items )
145
145
146
146
147
+ def test_multidict_update_str_with_kwargs (
148
+ benchmark : BenchmarkFixture , any_multidict_class : Type [MultiDict [str ]]
149
+ ) -> None :
150
+ md = any_multidict_class ((str (i ), str (i )) for i in range (100 ))
151
+ items = {str (i ): str (i ) for i in range (100 , 200 )}
152
+ kwargs = {str (i ): str (i ) for i in range (200 , 300 )}
153
+
154
+ @benchmark
155
+ def _run () -> None :
156
+ md .update (items , ** kwargs )
157
+
158
+
159
+ def test_cimultidict_update_istr_with_kwargs (
160
+ benchmark : BenchmarkFixture ,
161
+ case_insensitive_multidict_class : Type [CIMultiDict [istr ]],
162
+ ) -> None :
163
+ md = case_insensitive_multidict_class ((istr (i ), istr (i )) for i in range (100 ))
164
+ items : Dict [Union [str , istr ], istr ] = {istr (i ): istr (i ) for i in range (100 , 200 )}
165
+ kwargs = {str (i ): istr (i ) for i in range (200 , 300 )}
166
+
167
+ @benchmark
168
+ def _run () -> None :
169
+ md .update (items , ** kwargs )
170
+
171
+
147
172
def test_multidict_extend_str (
148
173
benchmark : BenchmarkFixture , any_multidict_class : Type [MultiDict [str ]]
149
174
) -> None :
@@ -171,6 +196,35 @@ def _run() -> None:
171
196
md .extend (items )
172
197
173
198
199
+ def test_multidict_extend_str_with_kwargs (
200
+ benchmark : BenchmarkFixture , any_multidict_class : Type [MultiDict [str ]]
201
+ ) -> None :
202
+ base_md = any_multidict_class ((str (i ), str (i )) for i in range (100 ))
203
+ items = {str (i ): str (i ) for i in range (200 )}
204
+ kwargs = {str (i ): str (i ) for i in range (200 , 300 )}
205
+
206
+ @benchmark
207
+ def _run () -> None :
208
+ for j in range (100 ):
209
+ md = base_md .copy ()
210
+ md .extend (items , ** kwargs )
211
+
212
+
213
+ def test_cimultidict_extend_istr_with_kwargs (
214
+ benchmark : BenchmarkFixture ,
215
+ case_insensitive_multidict_class : Type [CIMultiDict [istr ]],
216
+ ) -> None :
217
+ base_md = case_insensitive_multidict_class ((istr (i ), istr (i )) for i in range (100 ))
218
+ items = {istr (i ): istr (i ) for i in range (200 )}
219
+ kwargs = {str (i ): istr (i ) for i in range (200 , 300 )}
220
+
221
+ @benchmark
222
+ def _run () -> None :
223
+ for _ in range (100 ):
224
+ md = base_md .copy ()
225
+ md .extend (items , ** kwargs )
226
+
227
+
174
228
def test_multidict_delitem_str (
175
229
benchmark : BenchmarkFixture , any_multidict_class : Type [MultiDict [str ]]
176
230
) -> None :
@@ -396,6 +450,29 @@ def _run() -> None:
396
450
case_insensitive_multidict_class (items )
397
451
398
452
453
+ def test_create_multidict_with_items_with_kwargs (
454
+ benchmark : BenchmarkFixture , any_multidict_class : Type [MultiDict [str ]]
455
+ ) -> None :
456
+ items = [(str (i ), str (i )) for i in range (100 )]
457
+ kwargs = {str (i ): str (i ) for i in range (100 )}
458
+
459
+ @benchmark
460
+ def _run () -> None :
461
+ any_multidict_class (items , ** kwargs )
462
+
463
+
464
+ def test_create_cimultidict_with_items_istr_with_kwargs (
465
+ benchmark : BenchmarkFixture ,
466
+ case_insensitive_multidict_class : Type [CIMultiDict [istr ]],
467
+ ) -> None :
468
+ items = [(istr (i ), istr (i )) for i in range (100 )]
469
+ kwargs = {str (i ): istr (i ) for i in range (100 )}
470
+
471
+ @benchmark
472
+ def _run () -> None :
473
+ case_insensitive_multidict_class (items , ** kwargs )
474
+
475
+
399
476
def test_create_empty_multidictproxy (benchmark : BenchmarkFixture ) -> None :
400
477
md : MultiDict [str ] = MultiDict ()
401
478
0 commit comments