ó
\c           @@  sð   d  Z  d d l m Z d d l Z d d l m Z d d l m Z m Z d d l	 Z	 d d l
 Z
 d d l Z d „  Z d „  Z d	 e f d
 „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d S(   s!   
    Tests the h5py.File object.
i    (   t   absolute_importN(   t   _driversi   (   t   utt   TestCasec           C@  s   t  j j t  j j t  j j ƒ S(   N(   t   h5pyt   h5ft   get_obj_countt   OBJ_ALLt   OBJ_FILE(    (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt   nfiles   s    c           C@  s   t  j j t  j j t  j j ƒ S(   N(   R   R   R   R   t	   OBJ_GROUP(    (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt   ngroups   s    t   TestDeallocc           B@  s   e  Z d  Z d „  Z RS(   sj   
        Behavior on object deallocation.  Note most of this behavior is
        delegated to FileID.
    c         C@  s@  t  ƒ  } t ƒ  } |  j ƒ  } t j | d ƒ } | d } |  j t  ƒ  | d ƒ |  j t ƒ  | d ƒ ~ |  j | ƒ |  j t  ƒ  | ƒ |  j t ƒ  | d ƒ | j } |  j | ƒ |  j t  ƒ  | d ƒ |  j t ƒ  | d ƒ ~ |  j t  ƒ  | d ƒ |  j t ƒ  | ƒ ~ |  j t  ƒ  | ƒ |  j t ƒ  | ƒ d S(   s\    File objects close automatically when out of scope, but
        other objects remain open. t   wt   /i   N(   R	   R   t   mktempR   t   Filet   assertEqualt
   assertTruet   file(   t   selft   start_nfilest   start_ngroupst   fnamet   ft   g(    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt   test_autoclose(   s*    		
	(   t   __name__t
   __module__t   __doc__R   (    (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyR   !   s   t   TestDriverRegistrationc           B@  s   e  Z d  „  Z d „  Z RS(   c         @  s”   d  g ‰  ‡  f d †  } t j d | ƒ |  j d t j ƒ  ƒ |  j ƒ  } t j | d d d d d d ƒ|  j ˆ  d i d d 6d d 6f g ƒ d  S(	   Nc         @  s   | | f ˆ  d <t  d |  ƒ S(   Ni    t   sec2(   R   (   t   plistt   argst   kwargs(   t   called_with(    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt   set_faplQ   s    s
   new-drivert   drivert   driver_arg_0i    t   driver_arg_1i   (    (   t   NoneR   t   register_drivert   assertInt   registered_driversR   R   R   (   R   R$   R   (    (   R#   s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt   test_register_driverN   s    	c         C@  s    t  j d d „  ƒ |  j d t  j ƒ  ƒ t  j d ƒ |  j d t  j ƒ  ƒ |  j t ƒ & } |  j ƒ  } t  j	 | d d ƒWd  QX|  j
 t | j ƒ d ƒ d  S(   Ns
   new-driverc         S@  s   d  S(   N(   R(   (   R    (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt   <lambda>a   s    R%   s    Unknown driver type "new-driver"(   R   R)   R*   R+   t   unregister_drivert   assertNotInt   assertRaisest
   ValueErrorR   R   R   t   strt	   exception(   R   t   eR   (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt   test_unregister_driver`   s    (   R   R   R,   R5   (    (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyR   M   s   	t	   TestCachec           B@  s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C@  sS   |  j  ƒ  } t j | d ƒ } |  j t | j j ƒ  j ƒ  ƒ d d d d g ƒ d  S(   NR   i    i	  i   g      è?(   R   R   R   R   t   listt   idt   get_access_plistt	   get_cache(   R   R   R   (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt   test_defaultso   s    c         C@  sY   |  j  ƒ  } t j | d d d ƒ} |  j t | j j ƒ  j ƒ  ƒ d d d d g ƒ d  S(   NR   t   rdcc_nbytesi   i    i	  g      è?(   R   R   R   R   R7   R8   R9   R:   (   R   R   R   (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt   test_nbytesu   s    c         C@  sY   |  j  ƒ  } t j | d d d ƒ} |  j t | j j ƒ  j ƒ  ƒ d d d d g ƒ d  S(   NR   t   rdcc_nslotsi}   i    i   g      è?(   R   R   R   R   R7   R8   R9   R:   (   R   R   R   (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt   test_nslots{   s    c         C@  sY   |  j  ƒ  } t j | d d d ƒ} |  j t | j j ƒ  j ƒ  ƒ d d d d g ƒ d  S(   NR   t   rdcc_w0g      Ð?i    i	  i   (   R   R   R   R   R7   R8   R9   R:   (   R   R   R   (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt   test_w0   s    (   R   R   R;   R=   R?   RA   (    (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyR6   n   s   			t   TestFileObjc           B@  sb   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z RS(
   c         C@  s¨   t  j | ƒ } |  j | j d ƒ |  j | j t | ƒ ƒ | j d d t t d ƒ ƒ ƒ|  j	 t | ƒ d g ƒ |  j	 t | d ƒ t t d ƒ ƒ ƒ | j
 ƒ  d  S(   Nt   fileobjt   testt   datai   (   R   R   t   assertEqualsR%   t   filenamet   reprt   create_datasetR7   t   rangeR   t   close(   R   RC   R   (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt   check_writeŠ   s    'c         C@  sˆ   t  j | d ƒ } |  j t | ƒ d g ƒ |  j t | d ƒ t t d ƒ ƒ ƒ |  j t | j d d t t d ƒ ƒ ƒ| j ƒ  d  S(   Nt   rRD   i   s   another.testRE   i   (	   R   R   R   R7   RJ   R0   t	   ExceptionRI   RK   (   R   RC   R   (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt
   check_read“   s
    '(c         C@  sk   t  j ƒ  Y } |  j t | j ƒ  ƒ d ƒ |  j | ƒ |  j t | j ƒ  ƒ d ƒ |  j | ƒ Wd  QXd  S(   Ni    (   t   iot   BytesIORF   t   lent   getvalueRL   t   assertGreaterRO   (   R   RC   (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt   test_BytesIO›   s
    c         C@  s´   |  j  ƒ  } z“ t | d ƒ Y } |  j t j j | ƒ d ƒ |  j | ƒ |  j t j j | ƒ d ƒ |  j | ƒ Wd  QXt | d ƒ  } |  j | ƒ Wd  QXWd  t j	 | ƒ Xd  S(   Ns   wb+i    t   rb(
   R   t   openRF   t   ost   patht   getsizeRL   RT   RO   t   remove(   R   R   RC   (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt	   test_file£   s    c         C@  sÆ   t  j ƒ  } | j } t j | ƒ } ~ | j d d t t d ƒ ƒ ƒ|  j t | ƒ d g ƒ |  j t | d ƒ t t d ƒ ƒ ƒ |  j	 t
 j j | ƒ ƒ | j ƒ  |  j t
 j j | ƒ ƒ d  S(   NRD   RE   i   (   t   tempfilet   NamedTemporaryFilet   nameR   R   RI   R7   RJ   R   R   RX   RY   t   isfileRK   t   assertFalse(   R   RC   R   R   (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt   test_TemporaryFile±   s    	'
c         C@  sX   |  j  t t j d  d d ƒ|  j  t t j d d d ƒ|  j  t t j |  d d ƒd  S(   NR%   RC   t   rogue(   R0   RN   R   R   R(   (   R   (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt   test_exception_openÃ   s    c         C@  se   d t  j f d „  ƒ  Y} t j | ƒ  ƒ } | j d d t t d ƒ ƒ ƒ|  j t t | d ƒ d  S(   Nt   BrokenBytesIOc           B@  s   e  Z d  „  Z RS(   c         S@  s   t  d ƒ ‚ d  S(   Ns   I am broken(   RN   (   R   t   b(    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt   readintoÌ   s    (   R   R   Rg   (    (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyRe   Ë   s   RD   RE   i   (	   RP   RQ   R   R   RI   R7   RJ   R0   RN   (   R   Re   R   (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt   test_exception_readÉ   s    c         C@  sj   d t  j f d „  ƒ  Y} t j | ƒ  ƒ } |  j t | j d d t t d ƒ ƒ ƒ|  j t | j	 ƒ d  S(   NRe   c           B@  s   e  Z d  „  Z RS(   c         S@  s   t  d ƒ ‚ d  S(   Ns   I am broken(   RN   (   R   Rf   (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt   write×   s    (   R   R   Ri   (    (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyRe   Ö   s   RD   RE   i   (
   RP   RQ   R   R   R0   RN   RI   R7   RJ   RK   (   R   Re   R   (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt   test_exception_writeÔ   s    (c         C@  s<   t  j ƒ  } t j | ƒ } | j ƒ  |  j t | j ƒ d  S(   N(   RP   RQ   R   R   RK   R0   RN   (   R   RC   R   (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt   test_exception_closeß   s    
c         C@  s…   t  j ƒ  } t j | ƒ } | j d d t t d ƒ ƒ ƒ|  j t | d ƒ t t d ƒ ƒ ƒ d  | _	 |  j
 t t | d ƒ d  S(   NRD   RE   i   (   RP   RQ   R   R   RI   R7   RJ   R   R(   Rg   R0   RN   (   R   RC   R   (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt   test_method_vanishæ   s    '	(   R   R   RL   RO   RU   R\   Rb   Rd   Rh   Rj   Rk   Rl   (    (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyRB   ˆ   s   										t   TestTrackOrderc           B@  s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C@  sT   xM t  d ƒ D]? } | d d k r9 | j t | ƒ ƒ q | g | t | ƒ <q Wd  S(   Nid   i
   i    (   RJ   t   create_groupR2   (   R   R   t   i(    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt   populateð   s    c         C@  sj   |  j  ƒ  } t j | d d t ƒ} |  j | ƒ |  j t | ƒ g  t d ƒ D] } t | ƒ ^ qM ƒ d  S(   NR   t   track_orderid   (	   R   R   R   t   TrueRp   R   R7   RJ   R2   (   R   R   R   Ro   (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt   test_track_orderø   s
    c         C@  sp   |  j  ƒ  } t j | d d t ƒ} |  j | ƒ |  j t | ƒ t g  t d ƒ D] } t	 | ƒ ^ qP ƒ ƒ d  S(   NR   Rq   id   (
   R   R   R   t   FalseRp   R   R7   t   sortedRJ   R2   (   R   R   R   Ro   (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt   test_no_track_orderÿ   s
    (   R   R   Rp   Rs   Rv   (    (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyRm   ï   s   		(   R   t
   __future__R    R   t   h5py._hl.filesR   t   commonR   R   RP   R]   RX   R	   R   R   R   R6   RB   Rm   (    (    (    s6   lib/python2.7/site-packages/h5py/tests/hl/test_file.pyt   <module>   s   		,!g