Ñò
•à"Ic        
   @   s  d  Z  d d k Z d d k Z d d k l Z l Z l Z l Z y e ƒ  Z	 Wn d d k
 l Z n X[	 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 „  Z e d j o e i d d ƒ n d S(   s(   TestCases for distributed transactions.
iÿÿÿÿN(   t   dbt   test_supportt   get_new_environment_patht   get_new_database_path(   t   Set(   t   verboset   DBTxn_distributedc           B   sP   e  Z d  Z e Z e Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z RS(   iÒ  c         C   s  t  i ƒ  |  _ |  i i |  i ƒ |  i i |  i d ƒ |  i i |  i d ƒ |  i i |  i d ƒ |  i o |  i i	 t  i
 t ƒ n |  i i |  i t  i t  i Bt  i Bt  i Bt  i Bt  i Bt  i Bd ƒ t  i |  i ƒ |  _  |  i  i t  i ƒ | oŒ t  i ƒ  d j oL |  i i ƒ  } |  i  i |  i t  i t  i t  i Bd d | ƒ| i ƒ  qŒ|  i  i |  i t  i t  i t  i Bd ƒ n d  S(   Ni   i¶  i   i   t   txn(   i   i   (   R    t   DBEnvt   dbenvt
   set_tx_maxt   num_txnst   set_lk_max_lockerst   set_lk_max_lockst   set_lk_max_objectst   nosynct	   set_flagst   DB_TXN_NOSYNCt   Truet   opent   homeDirt	   DB_CREATEt	   DB_THREADt
   DB_RECOVERt   DB_INIT_TXNt   DB_INIT_LOGt   DB_INIT_MPOOLt   DB_INIT_LOCKt   DBt
   set_re_lent   DB_XIDDATASIZEt   versiont	   txn_begint   filenamet   DB_QUEUEt   commit(   t   selft   must_open_dbR   (    (    sE   /mit/python/lib/python2.6/bsddb/test/test_distributed_transactions.pyt   _create_env   s*    
)c         C   s%   t  ƒ  |  _ d |  _ |  i d t ƒ S(   Nt   testR%   (   R   R   R!   R&   R   (   R$   (    (    sE   /mit/python/lib/python2.6/bsddb/test/test_distributed_transactions.pyt   setUp2   s    	c         C   sP   |  i  p t i ƒ  d  d j o |  i i ƒ  n |  i i ƒ  |  i i ƒ  d  S(   Ni   i   i   (   i   i   (   R   R    R   R	   t	   log_flusht   close(   R$   (    (    sE   /mit/python/lib/python2.6/bsddb/test/test_distributed_transactions.pyt   _destroy_env7   s    !c         C   s   |  i  ƒ  t i |  i ƒ d  S(   N(   R+   R   t   rmtreeR   (   R$   (    (    sE   /mit/python/lib/python2.6/bsddb/test/test_distributed_transactions.pyt   tearDown=   s    
c         C   s   |  i  ƒ  |  i | ƒ d  S(   N(   R+   R&   (   R$   R%   (    (    sE   /mit/python/lib/python2.6/bsddb/test/test_distributed_transactions.pyt   _recreate_envA   s    
c         C   sâ  t  ƒ  } d „  } d d  k } | i d d j o d „  } n x t |  i ƒ D]n } |  i i ƒ  } d t i } | | | ƒ } |  i i	 | | d | d t i
 ƒ| i | ƒ | i | ƒ qO W~ |  i |  i ƒ |  i i ƒ  } |  i |  i t | ƒ ƒ x' | D] \ } } |  i | | j ƒ qW~ ~ |  i |  i ƒ |  i i ƒ  } |  i |  i t | ƒ ƒ t  ƒ  } t  ƒ  }	 d }
 xœ | D]” \ } } |
 d j p |
 d	 j o |	 i | ƒ | i ƒ  nJ |
 d
 j o | i ƒ  n/ |
 d j o! | i ƒ  | i | ƒ d }
 n |
 d	 7}
 qƒW~ ~ |  i |  i ƒ |  i i ƒ  } |  i t | ƒ t | ƒ ƒ x | D] \ } } | i ƒ  qcW~ ~ |  i d t ƒ |  i i ƒ  } |  i t | ƒ d j ƒ |  i t |	 ƒ |  i i ƒ  d ƒ d  S(   Nc         S   s   |  S(    (    (   t   x(    (    sE   /mit/python/lib/python2.6/bsddb/test/test_distributed_transactions.pyt   <lambda>G   s    iÿÿÿÿi    i   c         S   s   t  |  d  ƒ S(   t   ascii(   t   bytes(   R/   (    (    sE   /mit/python/lib/python2.6/bsddb/test/test_distributed_transactions.pyR0   J   s    s   %%%ddR   t   flagsi   i   R%   t   nkeys(   t   sett   syst   version_infot   xrangeR   R	   R    R    R   t   putt	   DB_APPENDt   addt   prepareR.   R%   t   txn_recovert   assertEqualst   lent   assert_R#   t   abortt   discardR   t   stat(   R$   t   txnst   adaptR6   t   iR   t   gidt   recovered_txnst   discard_txnst   committed_txnst   state(    (    sE   /mit/python/lib/python2.6/bsddb/test/test_distributed_transactions.pyt   test01_distributed_transactionsE   sl    		 " 		 

 (   t   __name__t
   __module__R   R   R   t   FalseR%   R&   R(   R+   R-   R.   RL   (    (    (    sE   /mit/python/lib/python2.6/bsddb/test/test_distributed_transactions.pyR      s   					t   DBTxn_distributedSYNCc           B   s   e  Z e Z RS(    (   RM   RN   RO   R   (    (    (    sE   /mit/python/lib/python2.6/bsddb/test/test_distributed_transactions.pyRP   ‹   s   t   DBTxn_distributed_must_open_dbc           B   s   e  Z e Z RS(    (   RM   RN   R   R%   (    (    (    sE   /mit/python/lib/python2.6/bsddb/test/test_distributed_transactions.pyRQ   Ž   s   t"   DBTxn_distributedSYNC_must_open_dbc           B   s   e  Z e Z e Z RS(    (   RM   RN   RO   R   R   R%   (    (    (    sE   /mit/python/lib/python2.6/bsddb/test/test_distributed_transactions.pyRR   ‘   s   c          C   s–   t  i ƒ  }  t i ƒ  d j o0 |  i t  i t ƒ ƒ |  i t  i t ƒ ƒ n t i ƒ  d j o0 |  i t  i t ƒ ƒ |  i t  i t	 ƒ ƒ n |  S(   Ni   i   i   (   i   i   (   i   i   (
   t   unittestt	   TestSuiteR    R   t   addTestt	   makeSuiteR   RP   RQ   RR   (   t   suite(    (    sE   /mit/python/lib/python2.6/bsddb/test/test_distributed_transactions.pyt
   test_suite—   s    t   __main__t   defaultTestRX   (   t   __doc__t   osRS   t   test_allR    R   R   R   R5   t   at   setsR   R   t   TestCaseR   RP   RQ   RR   RX   RM   t   main(    (    (    sE   /mit/python/lib/python2.6/bsddb/test/test_distributed_transactions.pyt   <module>   s    "v	