@@ -167,24 +167,34 @@ def __init__(
167167        self ._lock_acquired  =  False 
168168        self .read_only  =  read_only 
169169
170+         # allow custom name for state, to be able to make test runs with real tags 
171+         # without affecting production state 
172+         if  args .override_state_name :
173+             logger .info (
174+                 f"Using custom state name instead of release tag: { args .override_state_name }  " 
175+             )
176+             self .state_name  =  args .override_state_name 
177+         else :
178+             self .state_name  =  self .tag 
179+ 
170180    def  __enter__ (self ) ->  "StateManager" :
171181        if  self .read_only :
172182            return  self 
173183        """Acquire lock when entering context.""" 
174-         if  not  self .storage .acquire_lock (self .tag ):
175-             raise  RuntimeError (f"Failed to acquire lock for tag: { self .tag }  " )
184+         if  not  self .storage .acquire_lock (self .state_name ):
185+             raise  RuntimeError (f"Failed to acquire lock for tag: { self .state_name }  " )
176186        self ._lock_acquired  =  True 
177-         logger .info (f"Lock acquired for tag: { self .tag }  " )
187+         logger .info (f"Lock acquired for tag: { self .state_name }  " )
178188        return  self 
179189
180190    def  __exit__ (self , exc_type : Any , exc_val : Any , exc_tb : Any ) ->  None :
181191        if  self .read_only :
182192            return 
183193        """Release lock when exiting context.""" 
184194        if  self ._lock_acquired :
185-             self .storage .release_lock (self .tag )
195+             self .storage .release_lock (self .state_name )
186196            self ._lock_acquired  =  False 
187-             logger .info (f"Lock released for tag: { self .tag }  " )
197+             logger .info (f"Lock released for tag: { self .state_name }  " )
188198
189199    @property  
190200    def  state (self ) ->  ReleaseState :
@@ -233,7 +243,7 @@ def apply_args(self, state: ReleaseState) -> None:
233243
234244    def  load (self ) ->  Optional [ReleaseState ]:
235245        """Load state from storage backend.""" 
236-         state_data  =  self .storage .get (self .tag )
246+         state_data  =  self .storage .get (self .state_name )
237247        if  state_data  is  None :
238248            return  None 
239249
@@ -250,7 +260,7 @@ def sync(self) -> None:
250260        if  current_dump  !=  self .last_dump :
251261            self .last_dump  =  current_dump 
252262            state_dict  =  json .loads (current_dump )
253-             self .storage .put (self .tag , state_dict )
263+             self .storage .put (self .state_name , state_dict )
254264            logger .debug ("State saved" )
255265
256266
0 commit comments