@@ -383,22 +383,20 @@ def CollectObjectIDs(ids, obj):
383
383
return len (ids )
384
384
385
385
class InstancingTestCase (unittest .TestCase , HelperMixin ):
386
- intobj = 123321
387
- floatobj = 1.2345
388
- strobj = "abcde" * 3
389
- dictobj = {"hello" :floatobj , "goodbye" :floatobj , floatobj :"hello" }
386
+ keys = (123 , 1.2345 , 'abc' , (123 , 'abc' ), frozenset ({123 , 'abc' }))
390
387
391
388
def helper3 (self , rsample , recursive = False , simple = False ):
392
389
#we have two instances
393
390
sample = (rsample , rsample )
394
391
395
392
n0 = CollectObjectIDs (set (), sample )
396
393
397
- s3 = marshal .dumps (sample , 3 )
398
- n3 = CollectObjectIDs (set (), marshal .loads (s3 ))
394
+ for v in range (3 , marshal .version + 1 ):
395
+ s3 = marshal .dumps (sample , v )
396
+ n3 = CollectObjectIDs (set (), marshal .loads (s3 ))
399
397
400
- #same number of instances generated
401
- self .assertEqual (n3 , n0 )
398
+ #same number of instances generated
399
+ self .assertEqual (n3 , n0 )
402
400
403
401
if not recursive :
404
402
#can compare with version 2
@@ -414,20 +412,54 @@ def helper3(self, rsample, recursive=False, simple=False):
414
412
self .assertGreaterEqual (len (s2 ), len (s3 ))
415
413
416
414
def testInt (self ):
417
- self .helper (self .intobj )
418
- self .helper3 (self .intobj , simple = True )
415
+ intobj = 123321
416
+ self .helper (intobj )
417
+ self .helper3 (intobj , simple = True )
419
418
420
419
def testFloat (self ):
421
- self .helper (self .floatobj )
422
- self .helper3 (self .floatobj )
420
+ floatobj = 1.2345
421
+ self .helper (floatobj )
422
+ self .helper3 (floatobj )
423
423
424
424
def testStr (self ):
425
- self .helper (self .strobj )
426
- self .helper3 (self .strobj )
425
+ strobj = "abcde" * 3
426
+ self .helper (strobj )
427
+ self .helper3 (strobj )
428
+
429
+ def testBytes (self ):
430
+ bytesobj = b"abcde" * 3
431
+ self .helper (bytesobj )
432
+ self .helper3 (bytesobj )
433
+
434
+ def testList (self ):
435
+ for obj in self .keys :
436
+ listobj = [obj , obj ]
437
+ self .helper (listobj )
438
+ self .helper3 (listobj )
439
+
440
+ def testTuple (self ):
441
+ for obj in self .keys :
442
+ tupleobj = (obj , obj )
443
+ self .helper (tupleobj )
444
+ self .helper3 (tupleobj )
445
+
446
+ def testSet (self ):
447
+ for obj in self .keys :
448
+ setobj = {(obj , 1 ), (obj , 2 )}
449
+ self .helper (setobj )
450
+ self .helper3 (setobj )
451
+
452
+ def testFrozenSet (self ):
453
+ for obj in self .keys :
454
+ frozensetobj = frozenset ({(obj , 1 ), (obj , 2 )})
455
+ self .helper (frozensetobj )
456
+ self .helper3 (frozensetobj )
427
457
428
458
def testDict (self ):
429
- self .helper (self .dictobj )
430
- self .helper3 (self .dictobj )
459
+ for obj in self .keys :
460
+ dictobj = {"hello" : obj , "goodbye" : obj , obj : "hello" }
461
+ self .helper (dictobj )
462
+ self .helper3 (dictobj )
431
463
432
464
def testModule (self ):
433
465
with open (__file__ , "rb" ) as f :
@@ -438,10 +470,11 @@ def testModule(self):
438
470
self .helper3 (code )
439
471
440
472
def testRecursion (self ):
441
- d = dict (self .dictobj )
473
+ obj = 1.2345
474
+ d = {"hello" : obj , "goodbye" : obj , obj : "hello" }
442
475
d ["self" ] = d
443
476
self .helper3 (d , recursive = True )
444
- l = [self . dictobj ]
477
+ l = [obj , obj ]
445
478
l .append (l )
446
479
self .helper3 (l , recursive = True )
447
480
0 commit comments