1919sys .path .insert (0 , REPO_ROOT )
2020
2121from utils .workspace_path import (
22- get_workspace_path_override ,
2322 resolve_workspace_path ,
2423 set_workspace_path_override ,
2524)
@@ -35,9 +34,15 @@ def setUp(self):
3534 self .path_b = os .path .join (self .tmp , "storage-b" )
3635 os .makedirs (self .path_a )
3736 os .makedirs (self .path_b )
37+ self .allowed_resolved = {
38+ os .path .realpath (self .path_a ),
39+ os .path .realpath (self .path_b ),
40+ }
3841 self ._prior_workspace_env = os .environ .pop ("WORKSPACE_PATH" , None )
3942 self .addCleanup (self ._restore_workspace_env )
4043 self .addCleanup (set_workspace_path_override , None )
44+ set_workspace_path_override (None )
45+ self .fallback_resolved = resolve_workspace_path ()
4146
4247 def _restore_workspace_env (self ):
4348 if self ._prior_workspace_env is None :
@@ -60,18 +65,10 @@ def writer() -> None:
6065 def reader () -> None :
6166 start .wait ()
6267 for _ in range (iterations ):
63- override = get_workspace_path_override ()
64- if override is None :
65- errors .append ("override was unexpectedly cleared during run" )
66- continue
67- if override not in (self .path_a , self .path_b ):
68- errors .append (f"override returned unexpected value: { override !r} " )
69- continue
7068 resolved = resolve_workspace_path ()
71- expected = os .path .realpath (override )
72- if resolved != expected :
69+ if resolved not in self .allowed_resolved :
7370 errors .append (
74- f"resolve { resolved !r } != realpath(override) { expected !r} "
71+ f"resolve returned unexpected path: { resolved !r} "
7572 )
7673
7774 with ThreadPoolExecutor (max_workers = 9 ) as pool :
@@ -100,16 +97,13 @@ def toggler() -> None:
10097 def reader () -> None :
10198 start .wait ()
10299 for _ in range (iterations ):
103- override = get_workspace_path_override ()
104100 resolved = resolve_workspace_path ()
105- if override is None :
101+ if (
102+ resolved in self .allowed_resolved
103+ or resolved == self .fallback_resolved
104+ ):
106105 continue
107- if override not in (self .path_a , self .path_b ):
108- errors .append (f"unexpected override: { override !r} " )
109- elif resolved != os .path .realpath (override ):
110- errors .append (
111- f"resolve { resolved !r} != realpath({ override !r} )"
112- )
106+ errors .append (f"resolve returned unexpected path: { resolved !r} " )
113107
114108 with ThreadPoolExecutor (max_workers = 5 ) as pool :
115109 futures = [pool .submit (toggler )]
0 commit comments