Ñò
à"Ic        
   @   s  d  Z  d d k Z d d k Z d d k Z d d k Z d d k Z d d k Z d d k l Z d e i	 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 e d „ Z e d j o e d e ƒ n d S(   s{   Test script for the bsddb C module by Roger E. Masse
   Adapted to unittest format and expanded scope by Raymond Hettinger
iÿÿÿÿN(   t   test_supportt	   TestBSDDBc           B   s  e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   t   cc         C   s†   |  i  d |  i |  i d d ƒ|  _ t d d d d d d	 d
 d d d d d ƒ |  _ x* |  i i ƒ  D] \ } } | |  i | <qe Wd  S(   Ni    t	   cachesizei €  t   qt   Guidot   wt   vant   et   Rossumt   rt   inventedt   tt   Pythont   yt    (   t
   openmethodt   fnamet   openflagt   ft   dictt   dt	   iteritems(   t   selft   kt   v(    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   setUp   s
    %0 c         C   s`   |  i  i ƒ  |  i  i ƒ  |  i d  j o d  Sy t i |  i ƒ Wn t i j
 o n Xd  S(   N(   R   t   synct   closeR   t   Nonet   ost   removet   error(   R   (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   tearDown   s    c         C   s;   x4 |  i  i ƒ  D]# \ } } |  i |  i | | ƒ q Wd  S(   N(   R   R   t   assertEqualR   (   R   R   R   (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   test_getitem   s     c         C   s&   |  i  t |  i ƒ t |  i ƒ ƒ d  S(   N(   R"   t   lenR   R   (   R   (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   test_len#   s    c         C   s`   d |  i  d <|  i |  i  d d ƒ |  i d |  i  i ƒ  j ƒ |  i d |  i  i ƒ  j ƒ d  S(   Nt
   discoveredR
   (   R   R"   t   assert_t   keyst   values(   R   (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   test_change&   s    c         C   sy   |  i  d  j o d  S|  i i ƒ  |  i d |  i  d ƒ |  _ x4 |  i i ƒ  D]# \ } } |  i |  i | | ƒ qN Wd  S(   Ni    R   (   R   R   R   R   R   R   R   R"   (   R   R   R   (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   test_close_and_reopen,   s     c         C   s    |  i  t | ƒ t | ƒ ƒ d  S(   N(   R"   t   set(   R   t   seqn1t   seqn2(    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   assertSetEquals6   s    c         C   sÎ   |  i  } |  i } |  i | | ƒ |  i | i ƒ  | i ƒ  ƒ |  i | i ƒ  | i ƒ  ƒ |  i | i ƒ  | i ƒ  ƒ |  i | i ƒ  | i ƒ  ƒ |  i | i ƒ  | i ƒ  ƒ |  i | i ƒ  | i ƒ  ƒ d  S(   N(	   R   R   R/   R(   R)   t   itemst   iterkeyst
   itervaluesR   (   R   R   R   (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   test_mapping_iteration_methods9   s    		c         C   sÑ   t  |  i ƒ } x; y! | i ƒ  } d | |  i | <Wq t j
 o Pq Xq t |  i ƒ } t  |  i ƒ } xE y+ | i ƒ  } d | |  i | <| d 8} Wqn t j
 o Pqn Xqn |  i | d ƒ |  i ƒ  d  S(   Ns	   modified i   i    (   t   iterR   t   nextt   StopIterationR$   R   R"   R3   (   R   t   dit   keyt
   loops_leftt   fi(    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt    test_iter_while_modifying_valuesD   s$    		c            sB   ‡  f d †  } ˆ  i  t | ƒ ‡  f d †  } ˆ  i  t | ƒ d  S(   Nc             sK   t  ˆ  i ƒ }  x5 y |  i ƒ  d ˆ  i d <Wq t j
 o Pq Xq d  S(   Nt   SPAMt   newkey(   R4   R   R5   R6   (   R7   (   R   (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   DictIterAbort^   s    
c             sK   t  ˆ  i ƒ }  x5 y |  i ƒ  d ˆ  i d <Wq t j
 o Pq Xq d  S(   NR<   R=   (   R4   R   R5   R6   (   R:   (   R   (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   DbIterAborth   s    
(   t   assertRaisest   RuntimeError(   R   R>   R?   (    (   R   s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   test_iter_abort_on_changed_size]   s    c            sB   ‡  f d †  } ˆ  i  t | ƒ ‡  f d †  } ˆ  i  t | ƒ d  S(   Nc             sK   ˆ  i  i ƒ  }  x5 y |  i ƒ  d ˆ  i  d <Wq t j
 o Pq Xq d  S(   NR<   R=   (   R   R   R5   R6   (   R7   (   R   (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   DictIteritemsAborts   s    
c             sP   ˆ  i  i ƒ  }  x: y  |  i ƒ  \ } } ˆ  i  | =Wq t j
 o Pq Xq d  S(   N(   R   R   R5   R6   (   R:   R8   t   value(   R   (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   DbIteritemsAbort}   s    (   R@   RA   (   R   RC   RE   (    (   R   s,   /mit/python/lib/python2.6/test/test_bsddb.pyt$   test_iteritems_abort_on_changed_sizer   s    c         C   sÝ   |  i  i ƒ  } xA y' | i ƒ  \ } } d | |  i  | <Wq t j
 o Pq Xq t |  i ƒ } |  i i ƒ  } xK y1 | i ƒ  \ } } d | |  i | <| d 8} Wqt t j
 o Pqt Xqt |  i | d ƒ |  i ƒ  d  S(   Ns	   modified i   i    (   R   R   R5   R6   R$   R   R"   R3   (   R   R7   R   R   R9   R:   (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt%   test_iteritems_while_modifying_values‡   s$    		c         C   sh   |  i  i ƒ  g } x6 t d t |  i  ƒ ƒ D] } | i |  i  i ƒ  ƒ q+ W|  i | |  i i ƒ  ƒ d  S(   Ni   (	   R   t   firstt   xrangeR$   t   appendR5   R/   R   R0   (   R   R0   t   i(    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   test_first_next_looping    s
     c         C   sh   |  i  i ƒ  g } x6 t d t |  i  ƒ ƒ D] } | i |  i  i ƒ  ƒ q+ W|  i | |  i i ƒ  ƒ d  S(   Ni   (	   R   t   lastRI   R$   RJ   t   previousR/   R   R0   (   R   R0   RK   (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   test_previous_last_looping¦   s
     c         C   sp   |  i  t |  i ƒ d j d ƒ x. |  i D]# } |  i i ƒ  d } |  i | =q) W|  i g  |  i i ƒ  d ƒ d  S(   Ni   s   test requires >=2 itemsi    s   expected empty db after test(   R'   R$   R   R   RH   R"   R0   (   R   t   _R8   (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   test_first_while_deleting¬   s    
 c         C   sp   |  i  t |  i ƒ d j d ƒ x. |  i D]# } |  i i ƒ  d } |  i | =q) W|  i g  |  i i ƒ  d ƒ d  S(   Ni   s   test requires >=2 itemsi    s   expected empty db after test(   R'   R$   R   R   RM   R"   R0   (   R   RP   R8   (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   test_last_while_deleting´   s    
 c         C   s-   |  i  |  i i d ƒ d |  i d f ƒ d  S(   NR   (   R"   R   t   set_locationR   (   R   (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   test_set_location¼   s    c         C   sD   x' |  i  D] } |  i | |  i j ƒ q
 W|  i d |  i j ƒ d  S(   Ns   not here(   R   R'   R   (   R   R   (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   test_contains¿   s    
 c         C   sK   x* |  i  D] } |  i |  i i | ƒ ƒ q
 W|  i |  i i d ƒ ƒ d  S(   Ns   not here(   R   R'   R   t   has_key(   R   R   (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   test_has_keyÄ   s    
 c         C   s*   |  i  i ƒ  |  i t |  i  ƒ d ƒ d  S(   Ni    (   R   t   clearR"   R$   (   R   (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt
   test_clearÉ   s    i    c         C   s*  t  i i ƒ  | o	 d GHn |  i i ƒ  \ } } | o d G| GHn d |  i | <| o	 d GHn t oL| o	 d GHn |  i i ƒ  } | i ƒ  \ } } | o	 d GHn d |  i | <| o	 d GHn x0 y | i ƒ  \ } } WqË t j
 o PqË XqË | o	 d	 GHn t	 |  i ƒ } | o	 d
 GHn xu | om yM | o	 d GHn | i ƒ  } | o	 d GHn d |  i | <| o	 d GHn Wq-t j
 o d  } q-Xq-W| o	 d GHq¶n |  i |  i i ƒ  d |  i j ƒ |  i i ƒ  d } |  i | |  i j ƒ d |  i | <|  i |  i | d ƒ d  S(   Nt   At   Bs0   deadlock.  do not pass go.  do not collect $200.t   Ct   Dt   Es   please don't deadlockt   Ft   F2t   Gt   Ht   Is   deadlocks-r-ust   Jt   Ki    s   be gone with ye deadlocks(   t   syst   stdoutt   flushR   RH   t   TrueR   R5   R6   R4   R   R'   R   (   R   t   debugR   R   RK   (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   test__no_deadlock_firstÍ   sb     	  	 	 	 		 	 	  	 	  #c         C   s§   t  |  i i ƒ } |  i i ƒ  } t  |  i i ƒ } | i ƒ  \ } } t  |  i i ƒ } ~ t  |  i i ƒ } |  i | | ƒ |  i | | ƒ |  i | | d j ƒ d  S(   Ni   (   R$   R   t   _cursor_refsR   R5   R"   R'   (   R   t   nc1RK   t   nc2R   R   t   nc3t   nc4(    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   test_for_cursor_memleak  s    c         C   s‡   |  i  i ƒ  \ } } |  i | |  i j ƒ |  i | |  i i ƒ  j ƒ |  i | |  i  j ƒ |  i t |  i ƒ d t |  i  ƒ ƒ d  S(   Ni   (   R   t   popitemR'   R   R)   R"   R$   (   R   R   R   (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   test_popitem  s
    c         C   s‹   d } |  i  i | ƒ } |  i | |  i | ƒ |  i | |  i  j ƒ |  i | |  i  i ƒ  j ƒ |  i t |  i ƒ d t |  i  ƒ ƒ d  S(   NR   i   (   R   t   popR"   R   R'   R)   R$   (   R   R   R   (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   test_pop  s    c         C   se   |  i  |  i i d ƒ d  ƒ |  i  |  i i d d ƒ d ƒ |  i  |  i i d d ƒ |  i d ƒ d  S(   Nt   NotHeret   DefaultR   (   R"   R   t   getR   R   (   R   (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   test_get"  s    c         C   sI   |  i  |  i i d d ƒ d ƒ |  i  |  i i d d ƒ |  i d ƒ d  S(   Nt   newt   dogR
   t   cat(   R"   R   t
   setdefaultR   (   R   (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   test_setdefault'  s    c         C   sv   t  d d d d d d ƒ } |  i i | ƒ |  i i | ƒ x4 |  i i ƒ  D]# \ } } |  i |  i | | ƒ qK Wd  S(   NR   t   lifet   ut   ofRK   t   brian(   R   R   t   updateR   R   R"   (   R   Rz   R   R   (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   test_update+  s     c         C   sÖ   |  i  d t i j	 o d  S|  i i ƒ  } | i ƒ  |  i |  i i ƒ  d | d ƒ |  i |  i i	 ƒ  d | d ƒ |  i |  i i
 ƒ  d | d ƒ |  i |  i i ƒ  d | d ƒ |  i t |  i ƒ | ƒ d  S(   Ni    i   iÿÿÿÿiþÿÿÿ(   R   t   bsddbt   btopenR   R(   t   sortR"   R   RH   R5   RM   RN   t   list(   R   R(   (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   test_keyordering2  s    
!!!!(   t   __name__t
   __module__R   R   R!   R#   R%   R*   R+   R/   R3   R;   RB   RF   RG   RL   RO   RQ   RR   RT   RU   RW   RY   Rk   Rq   Rs   Ru   Ry   R~   R„   R‰   (    (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyR      s:   		
				
														4						t	   TestBTreec           B   s   e  Z e i Z e i g Z RS(    (   RŠ   R‹   R    t   TESTFNR   R…   R†   R   (    (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyRŒ   =  s   	t   TestBTree_InMemoryc           B   s   e  Z d  Z e i g Z RS(   N(   RŠ   R‹   R   R   R…   R†   R   (    (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyRŽ   A  s   t   TestBTree_InMemory_Truncatec           B   s    e  Z d Z d  Z e i g Z RS(   t   nN(   RŠ   R‹   R   R   R   R…   R†   R   (    (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyR   E  s   t   TestHashTablec           B   s   e  Z e i Z e i g Z RS(    (   RŠ   R‹   R    R   R   R…   t   hashopenR   (    (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyR‘   J  s   	t   TestHashTable_InMemoryc           B   s   e  Z d  Z e i g Z RS(   N(   RŠ   R‹   R   R   R…   R’   R   (    (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyR“   N  s   c         C   s   t  i t t t t t ƒ d  S(   N(   R    t   run_unittestRŒ   R‘   RŽ   R“   R   (   t   verbose(    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt	   test_mainV  s    t   __main__R•   (   t   __doc__R   Rf   t   copyR…   t   dbhasht   unittestt   testR    t   TestCaseR   RŒ   RŽ   R   R‘   R“   R   R–   RŠ   Ri   (    (    (    s,   /mit/python/lib/python2.6/test/test_bsddb.pyt   <module>   s    ÿ 2	