o
    Nrf@                     @  sx  d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
mZ d dlZd dlZd dlmZ dd Zdd Zd	d
 Zdd Zejdd Zejdddddgddidfejddejddejdddd Zdd Zdd Zd d! Zd"d# Ze d$d% Zd&d' Zej d(d)d*d+ Z!ej d(d)d,d- Z"d.d/ Z#e d0d1 Z$d2d3 Z%dS )4    )annotationsN)	CliRunner)importlib_metadatac                  C  s8   t  } | tjj}|jdksJ d}|j|ksJ d S )N   zTUsage: get [OPTIONS] KEY
Try 'get --help' for help.

Error: Missing argument 'KEY'.
)r   invokedaskcli
config_get	exit_codeoutput)runnerresultexpected r   \/var/www/html/software/conda/envs/catlas/lib/python3.10/site-packages/dask/tests/test_cli.pytest_config_get_no_key   s   r   c                  C  sP   t  } | tjjdg}|jdksJ |jdsJ t|j	 dks&J d S )Narrayr   zbackend:r   )
r   r   r   r   r	   r
   r   
startswithlen
splitlinesr   r   r   r   r   test_config_get_value   s
   r   c                  C  s:   t  } | tjjdg}|jdksJ |jdsJ d S )NZbad_keyr   zSection not found)r   r   r   r   r	   r
   r   r   r   r   r   r   test_config_get_bad_value'   s   r   c                  C  sj   t jdd i# t } | t jjdg}|jdksJ |jdks#J W d    d S 1 s.w   Y  d S )Nzfoo.barr   zNone
)	r   configsetr   r   r   r	   r
   r   r   r   r   r   test_config_get_none.   s   "r   c              	   c  s    | dt|  tjj }ttjt_t| gtj_zt	
| V  W ttjt_tjj| d S ttjt_tjj| w )NZDASK_CONFIG)Zsetenvstrr   r   __dict__copy	importlibreloadpathspathlibPathupdate)ZtmpdirZmonkeypatchZ	originalsr   r   r   tmp_conf_dir6   s   r%   valueZ333MiBr      foobarempty_config)TFfile)Nzbar.yamlzfoo/bar.yamlexisting_key_config_filec                 C  s"  | |pd }|sdddii}|j jddd |t| n	t }| r(J dt|g}|r9|dt|g t	 }|r_|s_t
| d	 }dd
dt|g}	|jtjj|	dd ddd
ii}|jtjj|dd}
d| d| d}||
jksyJ t| }|dd|ii ||ksJ d S )Nz	dask.yamlZ	dataframer(   r)   T)parentsexist_ok	fizz.buzzz--filezexisting_conf.yamlZfoobarFZcatch_exceptionsfizzbuzzzUpdated [fizz.buzz] to [z], config saved to 
)parentmkdir
write_textyamldumpdictexistsr   extendr   r"   r#   r   r   r   Z
config_setr   Z	safe_load	read_textr$   )r%   r&   r*   r+   r,   config_fileZexpected_confcmdr   Zcmd_r   r   Zactual_confr   r   r   test_config_set_valueF   s,   r?   c                 C  s   t  }|jtjjdgdd}d|  d}|j|ksJ | d }| d }| d }|td	d
dii |td	d
dii |tdddii |jtjjdgdd}d| d| d}|j|ksfJ d S )Nr/   Fr0   z:Unable to find [fizz.buzz] in any of the following paths:
r3   z
conf1.yamlz
conf2.yamlz
conf3.yamlr1   r2   r'   r   r(   r)   z*Found [fizz.buzz] in the following files:
z  [fizz.buzz=1]
z  [fizz.buzz=2]
)	r   r   r   r   Zconfig_findr   r6   r7   r8   )r%   r   r   r   Zconf1Zconf2Zconf3r   r   r   test_config_findy   s&   
r@   c                  C  s4   t  } | tjj}|jdksJ d|jv sJ d S )Nr   zarray:)r   r   r   r   Zconfig_listr
   r   r   r   r   r   test_config_list   s   rA   c                  C  sB   t  } | tjjdg}|jdksJ |jdtj dksJ d S )Nz	--versionr   zcli, version r3   )r   r   r   r   r
   r   __version__r   r   r   r   test_version   s   rC   c                  C  s   t  } | tjj}|jdksJ t|j}|d d	dd t
jd d D ks,J |d tjks5J |d t jks@J zdd	lm} W n tyS   d }Y nw |d
 |ks\J d S )Nr   Python.c                 s  s    | ]}t |V  qd S N)r   ).0xr   r   r   	<genexpr>   s    z%test_info_versions.<locals>.<genexpr>   r   Platform)rB   distributed)r   r   r   r   versionsr
   jsonloadsr   joinsysversion_inforB   platformunamesystemrL   ImportError)r   r   tableZdistributed_versionr   r   r   test_info_versions   s   *rX   c                   C     d S rF   r   r   r   r   r   	dummy_cli      rZ   c                   C  rY   rF   r   r   r   r   r   bad_command   s   r\   good)namec                   C  rY   rF   r   r   r   r   r   good_command   r[   r_   c                   C  rY   rF   r   r   r   r   r   good_command_2   r[   r`   c                  C  s   ddl m}  tjdddd}tjdddd}G d	d
 d
}tjtdd | t| W d    n1 s4w   Y  tjtdd | t|  W d    n1 sQw   Y  | t| dtjv sbJ tjd t	u skJ d S )Nr   _register_command_epbadzdask.tests.test_cli:bad_commanddask_clir^   r&   groupr]    dask.tests.test_cli:good_commandc                   @  s    e Zd Zedd Zdd ZdS )z)test_register_command_ep.<locals>.ErrorEPc                 S  s   dS )Nr(   r   selfr   r   r   r^      r[   z.test_register_command_ep.<locals>.ErrorEP.namec                 S  s   t d)Nz Entrypoint could not be imported)rV   rh   r   r   r   load   s   z.test_register_command_ep.<locals>.ErrorEP.loadN)__name__
__module____qualname__propertyr^   rj   r   r   r   r   ErrorEP   s    
ro   zmust be instances ofmatchzexception occurred)
dask.clirb   r   
EntryPointpytestwarnsUserWarningrZ   commandsr_   )rb   Zbad_epZgood_epro   r   r   r   test_register_command_ep   s*   
rx   c                   C  rY   rF   r   r   r   r   r   dummy_cli_2   r[   ry   c                  C  st   ddl m}  tjdddd}tjdddd}| t| tjtd	d
 | t| W d    d S 1 s3w   Y  d S )Nr   ra   onerg   rd   re   twoz"dask.tests.test_cli:good_command_2z'While registering the command with namerp   )rr   rb   r   rs   ry   rt   ru   rv   )rb   rz   r{   r   r   r   $test_repeated_name_registration_warn   s   
"r|   )&
__future__r   r   rN   r"   rS   rQ   Zclickrt   r7   Zclick.testingr   r   rr   Zdask._compatibilityr   r   r   r   r   Zfixturer%   markZparametrizer?   r@   rA   rC   rX   rf   rZ   r\   commandr_   r`   rx   ry   r|   r   r   r   r   <module>   sN    
/




"
