B
    d                 @   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*}y|d j}W n tk
r0   Y nX W dQ R X dS )z)Create a file and access not existing keywdoesnt_existN)h5pyFilevalueKeyError)filenamenewfiler    r
   H/var/www/html/venv/lib/python3.7/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 dt j  X t| | }|jdksnt|jdks|tdS )z5Check that HDF5 errors can be muted/unmuted from h5pyztest.h5 N)	r   _errorsZunsilence_errorsr   
readouterrerrAssertionErroroutZsilence_errors)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
    ztest.h5)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< y| d jd }W n tk
rF   Y nX W d Q R X d S )Nztest.h5r            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   	