
    hT              	       r   % S SK Jr  S SKJrJr  S SKrS SKrS SKJr  S SK	J
r
  S SKJr  S SKJr  \" 5       r\R                   R#                  SSS	/5      S
 5       rS rSSSSSS.SSSSS./SSS/S.SSS/S/S.S S!S"/S./S#.r\\\4   \S$'   \R.                  " \5      r\R2                  S%\4S& j5       rS'\4S( jrS'\4S) jrS'\4S* jrS'\S+\R<                  4S, jr\R                   RA                  \" 5       (       + S-S.9\R                   R#                  S// S0Q5      S%\S/\4S1 j5       5       r!S%\S'\4S2 jr"g)3    )Path)AnyDictN)	CliRunner)app)HELP)get_git_versioncmdz--helpc                     [         R                  [        U (       a  U /OS5      n[        R                  " 5        H  nX!R
                  ;   a  M   e   g)z'Basic test to confirm help text appearsN)runnerinvoker   r   
splitlinesstdout)r
   resultlines      W/home/james-whalen/.local/lib/python3.13/site-packages/weasel/tests/cli/test_cli_app.pytest_show_helpr      s;     ]]3$7F!}}$$$ "    c                  :     [        5         g! [         a     gf = f)NTF)r	   RuntimeError r   r   has_gitr      s"     s   
 
zSample projectzThis is a project for testingzassets/weasel-readme.mdzZhttps://github.com/explosion/weasel/raw/9a3632862b47069d2f9033b773e814d4c4e09c83/README.md 65f4c426a9b153b7683738c92d0d20f9)desturlchecksumzassets/pyproject.tomlz_https://github.com/explosion/weasel/raw/9a3632862b47069d2f9033b773e814d4c4e09c83/pyproject.toml 1e2da3a3030d6611520952d5322cd94eT)r   r   r   extraokzprint okzpython -c "print('okokok')")namehelpscriptcreatezmake a fileztouch abc.txtabc.txt)r    r!   r"   outputscleanzremove test filez
rm abc.txt)titledescriptionassetscommandsSAMPLE_PROJECTtmp_pathc              #   n   #    U S-  nUR                  5         US-  R                  [        5        Uv   g 7f)Nprojectproject.yml)mkdir
write_textSAMPLE_PROJECT_TEXT)r,   paths     r   project_dirr4   F   s1     iDJJL	M%%&9:
Js   35r4   c           	      @   U S-  nUR                  5       (       a   S5       e[        5       R                  [        S[	        U 5      S[	        U5      /5      nUR
                  S:X  d   eUR                  5       (       d   eUR                  S5      n[        S   U;   d   eg )N	README.mdzREADME already existsdocumentz-or   zutf-8r(   )	existsr   r   r   str	exit_codeis_file	read_textr+   )r4   readme_pathr   texts       r   test_project_documentr?   N   s    +K!!##<%<<#[j#k*D#k2BCF q         )D-(D000r   c                    U S-  nUR                  5       (       a   S5       e[        5       R                  [        S[	        U 5      /5      nUR
                  S:X  d   eUS-  R                  5       (       d   S5       e[        5       R                  [        SS[	        U 5      /5      nUR
                  S:X  d   eUS-  R                  5       (       d   S5       eg )	Nr)   zAssets dir is already presentr   zweasel-readme.mdzAssets not downloadedz--extrazpyproject.tomlzExtras not downloaded)r8   r   r   r   r9   r:   r;   )r4   	asset_dirr   s      r   test_project_assetsrB   Z   s    h&I!!B#BB![hK0@%ABFq   **3355N7NN5[h	3{;K%LMFq   ((1133L5LL3r   c           	         U S-  n[        5       R                  [        SSS[        U 5      /5      nUR                  S:X  d   eUR                  5       (       a   e[        5       R                  [        SS[        U 5      /5      nUR                  S:X  d   eUR                  5       (       d   e[        5       R                  [        SS[        U 5      /5      nUR                  S:X  d   eSUR                  ;   d   eg )Nr$   run--dryr#   r   r   okokok)r   r   r   r9   r:   r;   r   )r4   	test_filer   s      r   test_project_runrH   f   s    i'I[eWhK@P%QRFq     """"[eXs;7G%HIFq   [eT3{3C%DEFq   v}}$$$r   monkeypatchc           	         U S-    [        5       R                  [        SSS[        U 5      /5      nUR                  S:X  d   eSUR
                  ;  d   eSUR
                  ;  d   eUR                  SS	5        UR                  S
S5        [        5       R                  [        SSS[        U 5      /5      nUR                  S:X  d   eSUR
                  ;   d   eSUR
                  ;   d   eg )Nr$   rD   rE   r#   r   z:You've set a `SPACY_CONFIG_OVERRIDES` environment variablezAYou've set a `SPACY_PROJECT_USE_GIT_VERSION` environment variableSPACY_CONFIG_OVERRIDEStestSPACY_PROJECT_USE_GIT_VERSIONfalse)r   r   r   r9   r:   outputsetenv)r4   rI   r   s      r   test_check_spacy_env_varsrQ   t   s    )[eWhK@P%QRFq   D}}		 	L}}		 /86@[eWhK@P%QRFq   G6==XXXK==		r   zgit not installed)reasonoptions_string) z--branch v3z8--repo https://github.com/explosion/projects --branch v3c                    U S-  nSnU(       d  / nOUR                  5       n[        5       R                  [        SU/UQ[	        U5      P5      nUR
                  S:X  d   eSUR                  ;   d   eUS-  R                  5       (       d   eg )Nproject_clonezbenchmarks/ner_conll03cloner   zweasel assetsr6   )splitr   r   r   r9   r:   rO   r;   )r,   rS   outtargetoptionsr   s         r   test_project_cloner\      s     _
$C%F &&([gv%J%JS%JKFq   fmm++++&&((((r   c                 8   [        [        5      nSnU S-  nUR                  5         U[        U5      0US'   [        R
                  " U5      nUS-  R                  U5        US-  n[        5       R                  [        SS[        U5      /5      nUR                  S:X  d   eUR                  5       (       d   e[        5       R                  [        S	U[        U5      /5      nUR                  S:X  d   e[        5       R                  [        SS
[        U5      /5      nUR                  S:X  d   eUR                  5       (       a   e[        5       R                  [        SU[        U5      /5      nUR                  S:X  d   eUR                  5       (       d   eg )Nxyzremoteremotesr/   r$   rD   r#   r   pushr&   pull)dictr+   r0   r9   srsly
yaml_dumpsr1   r   r   r   r:   r;   r8   )r,   r4   projr_   
remote_dir	proj_textrG   r   s           r   test_project_push_pullri      su   DFH$Js:/DO  &I= ,,Y7i'I[eXs;7G%HIFq   [ffc+6F%GHFq   [eWc+6F%GHFq   !!!![ffc+6F%GHFq   r   )#pathlibr   typingr   r   pytestrd   typer.testingr   weaselr   weasel.cli.mainr   weasel.utilr	   r   markparametrizer   r   r+   r9   __annotations__re   r2   fixturer4   r?   rB   rH   MonkeyPatchrQ   skipifr\   ri   r   r   r   <module>rw      s       #    '	 x 01% 2% 2 .o:	
 ,t:		
 67	
 !&'!{		
 &#n	
!""S#X "H &&~6  $  	1t 	1	MT 	M%$ %4 f>P>P 8 	M*=>
) 
)s 
) ?
)T  r   