"""Supplemental Windows lock compatibility in a new local test directory.""" from pathlib import Path import json import subprocess import sys import tempfile target = str(Path(sys.argv[1]).resolve()) sys.path.insert(0, target) import filelock assert filelock.__version__ == '4.2.1' assert Path(filelock.__file__).resolve().is_relative_to(Path(target)) child = '''import sys sys.path.insert(0,sys.argv[1]) from filelock import FileLock,SoftFileLock,Timeout cls=FileLock if sys.argv[2]=='native' else SoftFileLock try: with cls(sys.argv[3],timeout=0.2): print('acquired') except Timeout: print('timed-out') ''' cases = [] with tempfile.TemporaryDirectory(prefix='jt-sec02-windows-lock-') as temporary: for kind, cls in [('native', filelock.FileLock), ('soft', filelock.SoftFileLock)]: command=[sys.executable,'-c',child,target,kind,str(Path(temporary)/(kind+'.lock'))] with cls(command[-1],timeout=1): result=subprocess.run(command,capture_output=True,text=True,timeout=5,check=True) assert result.stdout.strip()=='timed-out',result.stdout result=subprocess.run(command,capture_output=True,text=True,timeout=5,check=True) assert result.stdout.strip()=='acquired',result.stdout cases.append({'case':kind,'finiteContentionTimeout':True,'acquiredAfterRelease':True}) print(json.dumps({'status':'PASS','platform':sys.platform,'filelock':filelock.__version__,'cases':cases,'limits':'Two fresh same-version Windows lock participants. No Windows shared-cache ACL/symlink security or cross-version migration claim.'}))