U
    md                     @   s8   d Z ddlZddlZdd Zdd Zdd Zd	d
 ZdS )z!
    Tests the h5py.File object.
    Nc              	   C   s@   t | d*}z|d j}W n tk
r0   Y nX W 5 Q R X dS )z)Create a file and access not existing keywdoesnt_existN)h5pyFilevalueKeyError)filenamenewfiler    r
   O/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/h5py/tests/test_errors.py_access_not_existing_object   s
    r   c                 C   s   | d }z:t j  t| | }|jdks2t|jdks@tW 5 t j  X t| | }|jdksnt|jdks|tdS )z5Check that HDF5 errors can be muted/unmuted from h5pytest.h5 N)	r   _errorsZsilence_errorsZunsilence_errorsr   
readouterrerrAssertionErrorout)tmp_pathcapfdr   capturedr
   r
   r   test_unsilence_errors   s    
r   c                 C   sL   t jt| d fd}|  |  | }|jdks:t|jdksHtdS )zyVerify the error printing is squashed in all threads.

    No console messages should be shown from membership tests
    r   )targetargsr   N)		threadingThreadr   startjoinr   r   r   r   )r   r   thr   r
   r
   r   )test_thread_hdf5_silence_error_membership2   s    r   c                    sP    fdd}t j|d}|  |  | }|jdks>t|jdksLtdS )zVerify the error printing is squashed in all threads.

    No console messages should be shown for non-existing attributes
    c               	      sV   t  d d<} dddg| d< z| d jd }W n tk
rF   Y nX W 5 Q R X d S )Nr   r            newdatanonexistent_attr)r   r   attrsr   )r	   r$   r   r
   r   testF   s    z1test_thread_hdf5_silence_error_attr.<locals>.test)r   r   N)r   r   r   r   r   r   r   r   )r   r   r'   r   r   r
   r&   r   #test_thread_hdf5_silence_error_attrA   s    r(   )__doc__r   r   r   r   r   r(   r
   r
   r
   r   <module>
   s   	