@@ -370,24 +370,26 @@ def test_decorator_attributes(self):
370370 cached = Cached (cache )
371371
372372 self .assertIs (cached .get .cache , cache )
373- self .assertIs (cached .get .cache_key , keys .methodkey )
374373 self .assertIs (cached .get .cache_lock , None )
375374 self .assertIs (cached .get .cache_condition , None )
375+ self .assertEqual (cached .get .cache_key (42 ), keys .methodkey (cached , 42 ))
376376
377377 self .assertIs (cached .get_lock .cache , cache )
378- self .assertIs (cached .get_lock .cache_key , keys .methodkey )
379378 self .assertIs (cached .get_lock .cache_lock , cached .lock )
380379 self .assertIs (cached .get_lock .cache_condition , None )
380+ self .assertEqual (cached .get_lock .cache_key (42 ), keys .methodkey (cached , 42 ))
381381
382382 self .assertIs (cached .get_cond .cache , cache )
383- self .assertIs (cached .get_cond .cache_key , keys .methodkey )
384383 self .assertIs (cached .get_cond .cache_lock , cached .cond )
385384 self .assertIs (cached .get_cond .cache_condition , cached .cond )
385+ self .assertEqual (cached .get_cond .cache_key (42 ), keys .methodkey (cached , 42 ))
386386
387387 self .assertIs (cached .get_lock_cond_info .cache , cache )
388- self .assertIs (cached .get_lock_cond_info .cache_key , keys .methodkey )
389388 self .assertIs (cached .get_lock_cond_info .cache_lock , cached .lock )
390389 self .assertIs (cached .get_lock_cond_info .cache_condition , cached .cond )
390+ self .assertEqual (
391+ cached .get_lock_cond_info .cache_key (42 ), keys .methodkey (cached , 42 )
392+ )
391393
392394 def test_decorator_clear (self ):
393395 cache = self .cache (2 )
@@ -603,15 +605,25 @@ def test_shared_cache(self):
603605 self .assertEqual (cached1 .get_info .cache_info (), (0 , 0 , 2 , 0 ))
604606 self .assertEqual (cached2 .get_info .cache_info (), (0 , 0 , 2 , 0 ))
605607
608+ # hits/misses are counted by instance
606609 self .assertEqual (cached1 .get_info (0 ), 0 )
607-
608610 self .assertEqual (cached1 .get_info .cache_info (), (0 , 1 , 2 , 1 ))
609611 self .assertEqual (cached2 .get_info .cache_info (), (0 , 0 , 2 , 1 ))
610612
613+ # default methodkey discards "self", so results will be shared
614+ # across instances
611615 self .assertEqual (cached2 .get_info (0 ), 0 )
612-
613616 self .assertEqual (cached1 .get_info .cache_info (), (0 , 1 , 2 , 1 ))
614617 self .assertEqual (cached2 .get_info .cache_info (), (1 , 0 , 2 , 1 ))
618+ self .assertEqual (cached1 .get_info (0 ), 0 )
619+ self .assertEqual (cached1 .get_info .cache_info (), (1 , 1 , 2 , 1 ))
620+ self .assertEqual (cached2 .get_info .cache_info (), (1 , 0 , 2 , 1 ))
621+ self .assertEqual (cached1 .get_info (1 ), 1 )
622+ self .assertEqual (cached1 .get_info .cache_info (), (1 , 2 , 2 , 2 ))
623+ self .assertEqual (cached2 .get_info .cache_info (), (1 , 0 , 2 , 2 ))
624+ self .assertEqual (cached2 .get_info (1 ), 1 )
625+ self .assertEqual (cached1 .get_info .cache_info (), (1 , 2 , 2 , 2 ))
626+ self .assertEqual (cached2 .get_info .cache_info (), (2 , 0 , 2 , 2 ))
615627
616628 def test_value_too_large (self ):
617629 cache = self .cache (1 , getsizeof = lambda x : x )
0 commit comments