ó
¦xxTc           @   sº  d  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 m Z m	 Z	 m
 Z
 m Z m Z d d" d „  ƒ  YZ d e j f d „  ƒ  YZ 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 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 e f d „  ƒ  YZ d „  Z e d k r¶e j d  d! ƒ n  d S(#   s*   
TestCases for checking dbShelve objects.
iÿÿÿÿN(   t   dbt   dbshelvet   test_supportt   verboset   get_new_environment_patht   get_new_database_patht	   DataClassc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s   t  j  ƒ  |  _ d  S(   N(   t   randomt   value(   t   self(    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyt   __init__   s    c         C   s   d |  j  S(   Ns   DataClass %f(   R   (   R	   (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyt   __repr__   s    c         C   s   t  |  j | ƒ S(   N(   t   cmpR   (   R	   t   other(    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyt   __cmp__   s    (   t   __name__t
   __module__R
   R   R   (    (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyR      s   		t   DBShelveTestCasec           B   s§   e  Z e j d k  s3 e j d k rB e j d k  rB d d „ Z n  d „  Z d „  Z d „  Z d „  Z	 d	 „  Z
 d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   i   i   i   i    c         C   s   |  j  | | k d | ƒS(   Nt   msg(   t
   assertTrue(   R	   t   at   bR   (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyt   assertIn#   s    c         C   sO   t  j d d k r5 d d l m } | t ƒ |  _ n  t ƒ  |  _ |  j ƒ  d  S(   Ni    i   iÿÿÿÿ(   t   do_proxy_db_py3k(	   t   syst   version_infot   test_allR   t   Falset   _flag_proxy_db_py3kR   t   filenamet   do_open(   R	   R   (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyt   setUp'   s
    c         C   sQ   t  j d d k r3 d d l m } | |  j ƒ n  |  j ƒ  t j |  j ƒ d  S(   Ni    i   iÿÿÿÿ(   R   (	   R   R   R   R   R   t   do_closeR   t   unlinkR   (   R	   R   (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyt   tearDown.   s
    
c         C   s(   t  j d d k  r | St | d ƒ Sd S(   s1   Turn key into an appropriate key type for this dbi    i   s	   iso8859-1N(   R   R   t   bytes(   R	   t   key(    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyt   mk5   s    c         C   sº   x³ t  j D]¨ } d | | |  j d | ƒ <t | ƒ | |  j d | ƒ <| g d | |  j d | ƒ <t ƒ  } d | | _ t | ƒ | _ | g d | _ | | |  j d | ƒ <q
 Wd  S(   Ni
   t   St   It   Lt   O(   t   stringt   lettersR%   t   ordR   R&   R'   R(   (   R	   t   dt   xt   inst(    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyt
   populateDB=   s    	c         C   s   t  j |  j ƒ |  _ d  S(   N(   R   t   openR   R-   (   R	   (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyR   K   s    c         C   s   |  j  j ƒ  d  S(   N(   R-   t   close(   R	   (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyR    O   s    c         C   s)  t  r% d Gd d GHd |  j j GHn  |  j |  j ƒ |  j j ƒ  |  j ƒ  |  j ƒ  |  j } t | ƒ } | j	 ƒ  } | j
 ƒ  } | j ƒ  } t  r³ d G| GHd G| GHd G| GHn  |  j d | j |  j d	 ƒ ƒ ƒ |  j d
 | j |  j d ƒ ƒ ƒ |  j d
 | j |  j d ƒ ƒ ƒ | j |  j d ƒ ƒ | |  j d ƒ =|  j d | j |  j d ƒ ƒ ƒ |  j d | j |  j d ƒ ƒ ƒ |  j t | ƒ | d ƒ g  } xS | j	 ƒ  D]E } | | } | j | ƒ t  råd | | f GHn  |  j | | ƒ q°W| j ƒ  }	 |  j t |	 ƒ t | j	 ƒ  ƒ ƒ t j d k  r]| j ƒ  |	 j ƒ  |  j | |	 ƒ nB | j d d „  ƒ |	 j d d „  ƒ |  j t | ƒ t |	 ƒ ƒ | j ƒ  }
 |  j t |
 ƒ t | ƒ ƒ x$ |
 D] \ } } |  j | | ƒ qÎW|  j | j |  j d	 ƒ ƒ d  ƒ |  j | j |  j d	 ƒ d  ƒ d  ƒ |  j | j |  j d	 ƒ d ƒ d ƒ |  j | j |  j d	 ƒ d
 d d g ƒ d
 d d g ƒ | j d ƒ |  j t j | j |  j d	 ƒ ƒ | j d
 ƒ | j |  j d ƒ d ƒ |  j | j |  j d ƒ ƒ d ƒ |  j | |  j d ƒ d ƒ d  S(   Ns   
s   -=i   s   Running %s.test01_basics...s   length:s   keys:s   stats:i    s   bad keyi   t   IAt   OAi   s   %s: %si   R$   c         S   s
   t  |  ƒ S(   N(   t   str(   R.   (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyt   <lambda>‚   s    c         S   s
   t  |  ƒ S(   N(   R5   (   R.   (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyR6   ƒ   s    s   a stringi   s   new keys   new data(   i   i   (   R   t	   __class__R   R0   R-   t   syncR    R   t   lent   keyst   statt   fdt   assertEqualt   has_keyR%   t   deletet   appendt   checkrect   valuesR   R   t   sortt   reprt   itemst   gett   Nonet   set_get_returns_nonet   assertRaisesR    t   DBNotFoundErrort   put(   R	   R-   t   lt   kt   st   fRB   R$   R   t   dbvaluesRE   (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyt   test01_basicsT   sl    

			"""""
"

"%%7""c         C   s”  t  r% d Gd d GHd |  j j GHn  |  j |  j ƒ |  j } d } | j ƒ  } | j ƒ  } xV | d  k	 r´ | d } t  rƒ | GHn  | \ } } |  j | | ƒ t	 | d ƒ ƒ  } q_ W~ |  j
 | t | ƒ ƒ d } | j ƒ  } | j ƒ  } xP | d  k	 r>| d } t  r| GHn  | \ } } |  j | | ƒ | j ƒ  } qï W|  j
 | t | ƒ ƒ | j |  j d ƒ ƒ | j ƒ  \ } } |  j | | ƒ ~ d  S(	   Ns   
s   -=i   s   Running %s.test02_cursors...i    i   t   nextt   SS(   R   R7   R   R0   R-   t   cursort   firstRG   RA   t   getattrR=   R9   t   lastt   prevt   setR%   t   current(   R	   R-   t   countt   ct   recR$   R   (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyt   test02_cursors›   s@    	

c         C   sE   t  r% d Gd d GHd |  j j GHn  |  j t j |  j j d ƒ d  S(   Ns   
s   -=i   s   Running %s.test03_append...s   unit test was here(   R   R7   R   RI   R   t   DBShelveErrorR-   R@   (   R	   (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyt   test03_appendÅ   s
    c         C   s•   |  j  |  j ƒ |  j } | j ƒ  } t | ƒ } |  j t | ƒ t | ƒ ƒ x+ | D]# } |  j | | ƒ | j | ƒ qT W|  j t | ƒ d ƒ d  S(   Ni    (   R0   R-   R:   RY   R=   R9   R   t   remove(   R	   R-   R:   t   keysetR$   (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyt   test04_iterableÏ   s    	c         C   sÀ  t  j d d k r7 t | t ƒ r7 | j d ƒ } q7 n  | d } | d d k r~ |  j t | ƒ t ƒ |  j | d | ƒ n>| d d k r½ |  j t | ƒ t ƒ |  j | t	 | ƒ ƒ nÿ | d d k rý |  j t | ƒ t
 ƒ |  j | | g d ƒ n¿ | d d	 k r¬t  j d d k  rId
 d l m } |  j t | ƒ | ƒ n |  j t | ƒ t ƒ |  j | j d | ƒ |  j | j t	 | ƒ ƒ |  j | j | g d ƒ n |  j d d ƒ d  S(   Ni    i   s	   iso8859-1i   R&   i
   R'   R(   R)   iÿÿÿÿ(   t   InstanceTypes   Unknown key type, fix the test(   R   R   t
   isinstanceR#   t   decodeR=   t   typeR5   t   intR,   t   listt   typesRd   R   R&   R'   R(   R   (   R	   R$   R   R.   Rd   (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyRA   Û   s,    
(   i   i   (   i   i    (   i   i   N(   R   R   R   R   RG   R   R   R"   R%   R0   R   R    RQ   R^   R`   Rc   RA   (    (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyR       s   							G	*	
	t   BasicShelveTestCasec           B   s   e  Z d  „  Z d „  Z RS(   c         C   s2   t  j ƒ  |  _ |  j j |  j |  j |  j ƒ d  S(   N(   R   t   DBShelfR-   R1   R   t   dbtypet   dbflags(   R	   (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyR      s    c         C   s   |  j  j ƒ  d  S(   N(   R-   R2   (   R	   (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyR      s    (   R   R   R   R    (    (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyRk   ÿ   s   	t   BTreeShelveTestCasec           B   s   e  Z e j Z e j Z RS(    (   R   R   R    t   DB_BTREERm   t	   DB_CREATERn   (    (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyRo     s   	t   HashShelveTestCasec           B   s   e  Z e j Z e j Z RS(    (   R   R   R    t   DB_HASHRm   Rq   Rn   (    (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyRr     s   	t   ThreadBTreeShelveTestCasec           B   s!   e  Z e j Z e j e j BZ RS(    (   R   R   R    Rp   Rm   Rq   t	   DB_THREADRn   (    (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyRt     s   	t   ThreadHashShelveTestCasec           B   s!   e  Z e j Z e j e j BZ RS(    (   R   R   R    Rs   Rm   Rq   Ru   Rn   (    (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyRv     s   	t   BasicEnvShelveTestCasec           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   sŠ   t  j ƒ  |  _ |  j j |  j |  j t  j Bt  j Bƒ t j	 j
 |  j ƒ d |  _ t j |  j ƒ |  _ |  j j |  j |  j |  j ƒ d  S(   Ni   (   R    t   DBEnvt   envR1   t   homeDirt   envflagst   DB_INIT_MPOOLRq   t   ost   patht   splitR   R   Rl   R-   Rm   Rn   (   R	   (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyR     s    c         C   s   |  j  j ƒ  |  j j ƒ  d  S(   N(   R-   R2   Ry   (   R	   (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyR    )  s    c         C   s   t  ƒ  |  _ t j |  ƒ d  S(   N(   R   Rz   R   R   (   R	   (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyR   .  s    c         C   sQ   t  j d d k r3 d d l m } | |  j ƒ n  |  j ƒ  t j |  j ƒ d  S(   Ni    i   iÿÿÿÿ(   R   (	   R   R   R   R   R   R    R   t   rmtreeRz   (   R	   R   (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyR"   2  s
    
(   R   R   R   R    R   R"   (    (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyRw     s   	
		t   EnvBTreeShelveTestCasec           B   s    e  Z d  Z e j Z e j Z RS(   i    (   R   R   R{   R    Rp   Rm   Rq   Rn   (    (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyR�   :  s   	t   EnvHashShelveTestCasec           B   s    e  Z d  Z e j Z e j Z RS(   i    (   R   R   R{   R    Rs   Rm   Rq   Rn   (    (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyR‚   @  s   	t   EnvThreadBTreeShelveTestCasec           B   s*   e  Z e j Z e j Z e j e j BZ RS(    (	   R   R   R    Ru   R{   Rp   Rm   Rq   Rn   (    (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyRƒ   F  s   		t   EnvThreadHashShelveTestCasec           B   s*   e  Z e j Z e j Z e j e j BZ RS(    (	   R   R   R    Ru   R{   Rs   Rm   Rq   Rn   (    (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyR„   L  s   		t   RecNoShelveTestCasec           B   s>   e  Z e j Z e j Z d  „  Z d „  Z d „  Z	 d „  Z
 RS(   c         C   s;   t  j |  ƒ t t d d ƒ ƒ |  _ i  |  _ i  |  _ d  S(   Ni   iˆ  (   Rk   R   Ri   t   ranget   key_poolt   key_mapt
   intkey_map(   R	   (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyR   Y  s    	c         C   sJ   | |  j  k r? |  j j d ƒ |  j  | <| |  j |  j  | <n  |  j  | S(   Ni    (   Rˆ   R‡   t   popR‰   (   R	   R$   (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyR%   a  s    c         C   s$   |  j  | } t j |  | | ƒ d  S(   N(   R‰   Rk   RA   (   R	   t   intkeyR   R$   (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyRA   g  s    c         C   së   t  r% d Gd d GHd |  j j GHn  d |  j d <d |  j d <|  j d	 |  j j d ƒ ƒ |  j d
 |  j j d ƒ ƒ |  j d |  j j d	 ƒ ƒ |  j d |  j j d ƒ ƒ |  j d |  j j d
 ƒ ƒ |  j d |  j j d ƒ ƒ d  S(   Ns   
s   -=i   s   Running %s.test03_append...t   spami   t   eggsi   i   i   s   baked beans(   R   R7   R   R-   R=   R@   RF   (   R	   (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyR`   k  s    (   R   R   R    t   DB_RECNORm   Rq   Rn   R   R%   RA   R`   (    (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyR…   U  s   					c          C   sì   t  j ƒ  }  |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t	 ƒ ƒ |  j t  j t
 ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  S(   N(   t   unittestt	   TestSuitet   addTestt	   makeSuiteR   Ro   Rr   Rt   Rv   R�   R‚   Rƒ   R„   R…   (   t   suite(    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyt
   test_suite|  s    t   __main__t   defaultTestR”   (    (   t   __doc__R}   R*   R   R   R�   R   R    R   R   R   R   R   R   t   TestCaseR   Rk   Ro   Rr   Rt   Rv   Rw   R�   R‚   Rƒ   R„   R…   R”   R   t   main(    (    (    sD   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/bsddb/test/test_dbshelve.pyt   <module>   s(   $.ß		'	