@@ -299,137 +299,6 @@ def test_getitem_with_error(self):
299
299
def test_buildvalue_N (self ):
300
300
_testcapi .test_buildvalue_N ()
301
301
302
- def test_mapping_keys_values_items (self ):
303
- class Mapping1 (dict ):
304
- def keys (self ):
305
- return list (super ().keys ())
306
- def values (self ):
307
- return list (super ().values ())
308
- def items (self ):
309
- return list (super ().items ())
310
- class Mapping2 (dict ):
311
- def keys (self ):
312
- return tuple (super ().keys ())
313
- def values (self ):
314
- return tuple (super ().values ())
315
- def items (self ):
316
- return tuple (super ().items ())
317
- dict_obj = {'foo' : 1 , 'bar' : 2 , 'spam' : 3 }
318
-
319
- for mapping in [{}, OrderedDict (), Mapping1 (), Mapping2 (),
320
- dict_obj , OrderedDict (dict_obj ),
321
- Mapping1 (dict_obj ), Mapping2 (dict_obj )]:
322
- self .assertListEqual (_testcapi .get_mapping_keys (mapping ),
323
- list (mapping .keys ()))
324
- self .assertListEqual (_testcapi .get_mapping_values (mapping ),
325
- list (mapping .values ()))
326
- self .assertListEqual (_testcapi .get_mapping_items (mapping ),
327
- list (mapping .items ()))
328
-
329
- def test_mapping_keys_values_items_bad_arg (self ):
330
- self .assertRaises (AttributeError , _testcapi .get_mapping_keys , None )
331
- self .assertRaises (AttributeError , _testcapi .get_mapping_values , None )
332
- self .assertRaises (AttributeError , _testcapi .get_mapping_items , None )
333
-
334
- class BadMapping :
335
- def keys (self ):
336
- return None
337
- def values (self ):
338
- return None
339
- def items (self ):
340
- return None
341
- bad_mapping = BadMapping ()
342
- self .assertRaises (TypeError , _testcapi .get_mapping_keys , bad_mapping )
343
- self .assertRaises (TypeError , _testcapi .get_mapping_values , bad_mapping )
344
- self .assertRaises (TypeError , _testcapi .get_mapping_items , bad_mapping )
345
-
346
- def test_mapping_has_key (self ):
347
- dct = {'a' : 1 }
348
- self .assertTrue (_testcapi .mapping_has_key (dct , 'a' ))
349
- self .assertFalse (_testcapi .mapping_has_key (dct , 'b' ))
350
-
351
- class SubDict (dict ):
352
- pass
353
-
354
- dct2 = SubDict ({'a' : 1 })
355
- self .assertTrue (_testcapi .mapping_has_key (dct2 , 'a' ))
356
- self .assertFalse (_testcapi .mapping_has_key (dct2 , 'b' ))
357
-
358
- def test_sequence_set_slice (self ):
359
- # Correct case:
360
- data = [1 , 2 , 3 , 4 , 5 ]
361
- data_copy = data .copy ()
362
-
363
- _testcapi .sequence_set_slice (data , 1 , 3 , [8 , 9 ])
364
- data_copy [1 :3 ] = [8 , 9 ]
365
- self .assertEqual (data , data_copy )
366
- self .assertEqual (data , [1 , 8 , 9 , 4 , 5 ])
367
-
368
- # Custom class:
369
- class Custom :
370
- def __setitem__ (self , index , value ):
371
- self .index = index
372
- self .value = value
373
-
374
- c = Custom ()
375
- _testcapi .sequence_set_slice (c , 0 , 5 , 'abc' )
376
- self .assertEqual (c .index , slice (0 , 5 ))
377
- self .assertEqual (c .value , 'abc' )
378
-
379
- # Immutable sequences must raise:
380
- bad_seq1 = (1 , 2 , 3 , 4 )
381
- with self .assertRaises (TypeError ):
382
- _testcapi .sequence_set_slice (bad_seq1 , 1 , 3 , (8 , 9 ))
383
- self .assertEqual (bad_seq1 , (1 , 2 , 3 , 4 ))
384
-
385
- bad_seq2 = 'abcd'
386
- with self .assertRaises (TypeError ):
387
- _testcapi .sequence_set_slice (bad_seq2 , 1 , 3 , 'xy' )
388
- self .assertEqual (bad_seq2 , 'abcd' )
389
-
390
- # Not a sequence:
391
- with self .assertRaises (TypeError ):
392
- _testcapi .sequence_set_slice (None , 1 , 3 , 'xy' )
393
-
394
- def test_sequence_del_slice (self ):
395
- # Correct case:
396
- data = [1 , 2 , 3 , 4 , 5 ]
397
- data_copy = data .copy ()
398
-
399
- _testcapi .sequence_del_slice (data , 1 , 3 )
400
- del data_copy [1 :3 ]
401
- self .assertEqual (data , data_copy )
402
- self .assertEqual (data , [1 , 4 , 5 ])
403
-
404
- # Custom class:
405
- class Custom :
406
- def __delitem__ (self , index ):
407
- self .index = index
408
-
409
- c = Custom ()
410
- _testcapi .sequence_del_slice (c , 0 , 5 )
411
- self .assertEqual (c .index , slice (0 , 5 ))
412
-
413
- # Immutable sequences must raise:
414
- bad_seq1 = (1 , 2 , 3 , 4 )
415
- with self .assertRaises (TypeError ):
416
- _testcapi .sequence_del_slice (bad_seq1 , 1 , 3 )
417
- self .assertEqual (bad_seq1 , (1 , 2 , 3 , 4 ))
418
-
419
- bad_seq2 = 'abcd'
420
- with self .assertRaises (TypeError ):
421
- _testcapi .sequence_del_slice (bad_seq2 , 1 , 3 )
422
- self .assertEqual (bad_seq2 , 'abcd' )
423
-
424
- # Not a sequence:
425
- with self .assertRaises (TypeError ):
426
- _testcapi .sequence_del_slice (None , 1 , 3 )
427
-
428
- mapping = {1 : 'a' , 2 : 'b' , 3 : 'c' }
429
- with self .assertRaises (KeyError ):
430
- _testcapi .sequence_del_slice (mapping , 1 , 3 )
431
- self .assertEqual (mapping , {1 : 'a' , 2 : 'b' , 3 : 'c' })
432
-
433
302
@unittest .skipUnless (hasattr (_testcapi , 'negative_refcount' ),
434
303
'need _testcapi.negative_refcount' )
435
304
def test_negative_refcount (self ):
0 commit comments