@@ -543,4 +543,42 @@ def get_sensitive_data(self, resource_id):
543543 # 2. Access the shared cache storage that contains admin's cached data
544544 for instance , cache_dict in cache_mgr .cache_storage .cache_data .items ():
545545 assert instance .user_token == 'user_token'
546- assert list (cache_dict .values ()) == ['Access denied for secret_file' ]
546+ assert list (cache_dict .values ()) == ['Access denied for secret_file' ]
547+
548+
549+ def test__regression__reload_next_flag_isolation_between_instances (self ): # Test that reload_next flag is properly isolated between instances
550+ class Reload_Flag_Class :
551+ def __init__ (self , name ):
552+ self .name = name
553+ self .call_count = 0
554+
555+ @cache_on_self
556+ def method (self ):
557+ self .call_count += 1
558+ return f"{ self .name } call { self .call_count } "
559+
560+ obj1 = Reload_Flag_Class ("obj1" )
561+ obj2 = Reload_Flag_Class ("obj2" )
562+
563+ # Initial calls
564+ assert obj1 .method () == "obj1 call 1"
565+ assert obj2 .method () == "obj2 call 1"
566+
567+ # Set reload_next on obj1's cache manager
568+ cache1 = obj1 .method (__return__ = 'cache_on_self' )
569+ cache2 = obj2 .method (__return__ = 'cache_on_self' )
570+
571+ cache1 .reload_next = True
572+
573+ # Verify isolation - obj2 uses cache, obj1 reloads
574+ assert obj2 .method () == "obj2 call 1" # Cache hit - correct!
575+ #assert obj1.method() != "obj1 call 2" # Reload triggered # BUG should be "obj1 call 2"
576+ assert obj1 .method () == "obj1 call 2" # Reload triggered # FIXED
577+ #assert obj1.method() == "obj1 call 1" # Reload triggered # BUG should be "obj1 call 2"
578+ assert obj1 .method () == "obj1 call 2" # Reload triggered # FIXED
579+
580+
581+ # Verify flags
582+ #assert cache1.reload_next is True # Reset after use # BUG should be False
583+ assert cache1 .reload_next is False # Reset after use # FIXED
584+ assert cache2 .reload_next is False # Reset after use
0 commit comments