Ë
    çÍ:j  ã                   óF   — d dl Z d dlZd dlZd dlmZ d„ Zd„ Zd„ Zd„ Zd„ Z	y)é    N)Ú
filestringc                 ó¦   — | dz  }|j                  «        |dz  }|j                  d«       t        t        |«      t        |«      ¬«      }|dk(  sJ ‚y)z/filestring should read files inside allowed_dirÚallowedzexample.txtzhello world©Úallowed_dirN)ÚmkdirÚ
write_textr   Ústr)Útmp_pathr   ÚfÚoutputs       úv/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/nltk/test/test_filestring_sandbox.pyÚtest_reads_allowed_filer   	   sQ   € à˜YÑ&€KØ×ÑÔà�mÑ#€AØ‡L�L�Ôäœ˜A›¬C°Ó,<Ô=€FØ�]Ò"Ð"Ñ"ó    c                 ó  — | dz  }|j                  «        | dz  }|j                  d«       t        |dz  dz  «      }t        j                  t
        «      5  t        |t        |«      ¬«       ddd«       y# 1 sw Y   yxY w)z.filestring should block ../ traversal attemptsr   z
secret.txtÚ	topsecretz..r   N)r   r	   r
   ÚpytestÚraisesÚPermissionErrorr   )r   r   ÚsecretÚtraversal_paths       r   Útest_rejects_parent_traversalr      sq   € à˜Ñ"€GØ‡M�M„Oà˜Ñ$€FØ
×Ñ�kÔ"ô ˜ 4™¨,Ñ6Ó7€Nä	�‰”Ó	'ñ =Ü�>¬s°7«|Õ<÷=÷ =ñ =ús   ÁA6Á6A?c                 óv  — | dz  }|j                  «        | dz  }|j                  d«       |dz  }	 |j                  |«       t        j                  t        «      5  t        t        |«      t        |«      ¬«       ddd«       y# t        t        f$ r t        j                  d«       Y Œhw xY w# 1 sw Y   yxY w)z<filestring should block symlink pointing outside allowed_dirr   zoutside.txtzhidden-datazlink.txtz/Symlink creation not supported on this platformr   N)r   r	   Ú
symlink_toÚOSErrorÚNotImplementedErrorr   Úskipr   r   r   r
   )r   r   ÚoutsideÚlinks       r   Útest_rejects_symlink_escaper    $   s©   € à˜Ñ"€GØ‡M�M„Oà˜Ñ&€GØ×Ñ�}Ô%à�ZÑ€DðGØ�‰˜Ô ô 
�‰”Ó	'ñ 8Ü”3�t“9¬#¨g«,Õ7÷8ð 8øô Ô(Ð)ò GÜ�‰ÐEÖFðGú÷8ð 8ús   ²B Á B/Â$B,Â+B,Â/B8c                  óN   — t        j                  d«      } t        | «      dk(  sJ ‚y)zBfilestring should maintain legacy behavior for stream-like objectszstream-dataN)ÚioÚStringIOr   )Ústreams    r   Ú test_preserves_file_like_objectsr%   8   s#   € ä�[‰[˜Ó'€FÜ�fÓ Ò.Ð.Ñ.r   c                 óÈ   — | dz  }|j                  «        |dz  }|j                  d«       t        t        |«      t        |«      ¬«      }t	        |t        «      sJ ‚d|v sJ ‚y)z=filestring should tolerate decoding errors when reading filesr   z
latin1.txts   cafér   ÚcafN)r   Úwrite_bytesr   r
   Ú
isinstance)r   r   r   r   s       r   Útest_encoding_fallbackr*   >   s[   € à˜Ñ"€GØ‡M�M„Oà�,Ñ€AØ‡M�M�*Ôäœ˜A›¬C°«LÔ9€FÜ�fœcÔ"Ð"Ð"Ø�F‰?Ð‰?r   )
r"   Úosr   Ú	nltk.utilr   r   r   r    r%   r*   © r   r   ú<module>r.      s*   ðÛ 	Û 	ã å  ò	#ò=ò8ò(/ó
r   