ó
n®¸Qc           @   s   d  Z  d d l Z d d l Z d d l Z d d l m 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 d Z d e j f 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  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$ d0 e# f d1 „  ƒ  YZ% d2 e j f d3 „  ƒ  YZ& d4 e& f d5 „  ƒ  YZ' d6 e& f d7 „  ƒ  YZ( d8 e j f d9 „  ƒ  YZ) d: „  Z* e+ d; k rüe j, d< d= ƒ n  d S(>   s_   
Basic TestCases for BTree and hash DBs, with and without a DBEnv, with
various DB flags, etc.
iÿÿÿÿN(   t   pprint(   t   dbt   test_supportt   verboset   get_new_environment_patht   get_new_database_patht   -t   VersionTestCasec           B   s   e  Z d  „  Z RS(   c         C   se   t  j ƒ  } t r? d Gd d GHd | f GHt  j GHd d GHn  |  j | t  j t  j t  j f ƒ d  S(   Ns   
s   -=i   s   bsddb.db.version(): %s(   R   t   versionR   t   DB_VERSION_STRINGt   assertEqualt   DB_VERSION_MAJORt   DB_VERSION_MINORt   DB_VERSION_PATCH(   t   selft   info(    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test00_version   s    (   t   __name__t
   __module__R   (    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyR      s   t   BasicTestCasec           B   s:  e  Z e j Z d  d d f 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  d  d „ Z d „  Z d „  Z d „  Z e j ƒ  d k rØ d „  Z n  d „  Z d „  Z d „  Z d „  Z e j ƒ  d k rd „  Z  n  e j ƒ  d k r8d „  Z! n  RS(   i    i   i   i°  iê  c      	   C   sE  |  j  rÏ t ƒ  |  _ yš t j ƒ  |  _ |  j j d ƒ |  j j d ƒ t t	 j	 ƒ  ƒ |  _
 |  j j |  j
 ƒ |  j j |  j d ƒ |  j j |  j |  j t j Bƒ d |  _ Wqä t j |  j ƒ ‚  qä Xn d  |  _ t ƒ  |  _ t j |  j ƒ |  _ |  j  s†|  j j |  j Œ  |  j j ƒ  } |  j | d |  j d ƒ |  j | d |  j d ƒ |  j d t d | d |  j d ƒ ƒ n  |  j j |  j ƒ |  j r×|  j j |  j |  j |  j |  j t j B|  j  ƒ n5 |  j j |  j d	 |  j  d
 |  j d |  j t j Bƒ|  j  s7|  j! t j" |  j j |  j Œ n  |  j# ƒ  d  S(   Ni   i   i   t   testi    i   i}   g      Y@t   modet   dbtypet   flagsi   ($   t   useEnvR   t   homeDirR   t   DBEnvt   envt
   set_lg_maxt
   set_tx_maxt   intt   timet   _tt   set_tx_timestampt	   set_flagst   envsetflagst   opent   envflagst	   DB_CREATEt   filenameR   t   rmtreet   NoneR   t   DBt   dt   set_cachesizet	   cachesizet   get_cachesizeR
   t
   dbsetflagst   dbnameR   t   dbopenflagst   dbmodet   assertRaisest   DBInvalidArgErrort
   populateDB(   R   R-   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   setUp0   sF    	 
		,				c         C   sP   |  j  j ƒ  |  j d  k	 r< |  j j ƒ  t j |  j ƒ n t j |  j	 ƒ d  S(   N(
   R+   t   closeR   R)   R   R(   R   t   ost   removeR'   (   R   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   tearDown_   s
    c         C   sð   |  j  } xN t |  j d ƒ D]9 } d |  j | } |  j | ƒ } | j | | | ƒ q W| j d d | ƒ xK t |  j d d ƒ D]2 } d | } |  j | ƒ } | j | | | ƒ q… W| rÎ | j ƒ  n  t | ƒ } t rì d | GHn  d  S(   Ni   s   %04ds   empty valuet    i   s   created %d records(   R+   t   ranget   _numKeyst   makeDatat   putt   committ   lenR   (   R   t   _txnR+   t   xt   keyt   datat   num(    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyR5   i   s    	
c         C   s   t  j | g d ƒ S(   Ni   (   t   DASHt   join(   R   RD   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyR>   €   s    c         C   s  |  j  } t r. d Gd d GHd |  j j GHn  x: d d d d d	 g D]# } | j | ƒ } t rD | GHqD qD W|  j | j d
 ƒ d ƒ |  j | j d ƒ d  ƒ y | j d ƒ Wng t j	 k
 r} t
 j d k  rì |  j | d t j ƒ n |  j | j d t j ƒ t r%| GHq%n X|  j d ƒ | j d d ƒ |  j | j d ƒ d ƒ | j d d ƒ |  j t j @rŠ|  j | j d ƒ d ƒ n |  j | j d ƒ d ƒ y | j d d d t j ƒWng t j k
 r)} t
 j d k  rþ|  j | d t j ƒ n |  j | j d t j ƒ t r7| GHq7n X|  j d ƒ |  j t j @rc|  j | j d ƒ d ƒ n |  j | j d ƒ d ƒ | j ƒ  | j ƒ  ~ t j |  j ƒ |  _  |  j rÍ|  j  j |  j |  j ƒ n |  j  j |  j ƒ |  j  } |  j | j d
 ƒ d ƒ |  j t j @r.|  j | j d ƒ d ƒ n |  j | j d ƒ d ƒ | j d d ƒ } t rg| GHn  |  j | j d d ƒ d  ƒ | j d d ƒ } |  j | d ƒ | j d |  ƒ } |  j | |  ƒ | j ƒ  } |  j t | ƒ t i  ƒ ƒ t rd GHt | ƒ n  d  S(   Ns   
s   -=i   s    Running %s.test01_GetsAndPuts...t   0001t   0100t   0400t   0700t   0999t   0321s   0321-0321-0321-0321-0321t   abcdi   i   i    s   expected exceptions   a new records   same keys   this should failR   t   0555s   0555-0555-0555-0555-0555s   bad datas   bad keys"   d.stat() returned this dictionary:(   i   i   (   i   i   (    R+   R   t	   __class__R   t   getR
   R)   t   deleteR   t   DBNotFoundErrort   syst   version_infot   DB_NOTFOUNDt   argst   failR?   R/   t   DB_DUPt   DB_NOOVERWRITEt   DBKeyExistErrort   DB_KEYEXISTt   syncR7   R*   R   R0   R$   R'   t   get_botht   statt   typeR    (   R   R+   RD   RE   t   valt   rect   s(    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test01_GetsAndPuts‡   s|    	  

		c         C   sä  |  j  } t r. d Gd d GHd |  j j GHn  xN d d d d d	 g D]7 } | | } |  j | |  j | ƒ ƒ t rD | GHqD qD W|  j t | ƒ |  j ƒ | j ƒ  } |  j t | ƒ |  j ƒ |  j t	 | ƒ t	 g  ƒ ƒ d
 | d <|  j t | ƒ |  j d ƒ | j ƒ  } |  j t | ƒ |  j d ƒ d | d <|  j t | ƒ |  j d ƒ | j ƒ  } |  j t | ƒ |  j d ƒ t r•d GHt
 | d  ƒ n  |  j | d d ƒ |  j | j d d  ƒ d ƒ |  j | j d d d  ƒd ƒ | j ƒ  } |  j t | ƒ |  j d ƒ |  j t	 | ƒ t	 g  ƒ ƒ |  j t	 | d ƒ t	 d ƒ ƒ |  j t | d ƒ d ƒ t rd GHt
 | d  ƒ n  | j ƒ  } |  j t | ƒ |  j d ƒ |  j t	 | ƒ t	 g  ƒ ƒ t ràd GHt
 | d  ƒ n  d  S(   Ns   
s   -=i   s&   Running %s.test02_DictionaryMethods...t   0002t   0101t   0401t   0701t   0998s   a new records
   new recordi   s   a replacement records   the first 10 keys are:i
   RI   t   spamt   txni    i   s   the first 10 items are:s   the first 10 values are:(    (   R+   R   RQ   R   R
   R>   RA   R=   t   keysRa   R    t   has_keyR)   t   itemst   values(   R   R+   RD   RE   Rm   Ro   Rp   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test02_DictionaryMethodsé   sT    	


 c         C   sš   |  j  } xN d d d d d g D]7 } | | } |  j | |  j | ƒ ƒ t r | GHq q W|  j t | d ƒ ƒ |  j d | k ƒ |  j d | k ƒ d  S(   NRf   Rg   Rh   Ri   Rj   t   __contains__t   1234(   R+   R
   R>   R   t
   assertTruet   hasattrt   assertFalse(   R   R+   RD   RE   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test02b_SequenceMethods&  s    	
c      	   C   s±  t  r. d Gd d GHd |  j j | | f GHn  |  j rY |  j t j @rY |  j j ƒ  } n d  } |  j	 j
 d | ƒ } | j ƒ  } d } x| d  k	 r™| d } t  r½ | d d k r½ | GHn  y | j ƒ  } Wnƒ t j k
 rR} | rBt j d1 k  r|  j | d t j ƒ n |  j | j d t j ƒ t  r9| GHn  d  } qS|  j d ƒ n X|  j | j ƒ  t | j ƒ  d ƒ d | j ƒ  | j ƒ  d f ƒ q‰ W|  j | |  j ƒ | j ƒ  } d } xÎ | d  k	 r| d } t  rö| d d k rö| GHn  y | j ƒ  } WqÂt j k
 r‹} | r{t j d2 k  rJ|  j | d t j ƒ n |  j | j d t j ƒ t  rr| GHn  d  } qŒ|  j d ƒ qÂXqÂW|  j | |  j ƒ | j d ƒ } | j ƒ  } |  j | | ƒ |  j | d d ƒ |  j | d |  j d ƒ ƒ |  j | j ƒ  t | d ƒ ƒ | j d ƒ } |  j | d d ƒ |  j | j ƒ  d ƒ y | j d ƒ }	 Wng t j k
 rÔ} t j d3 k  r©|  j | d t j ƒ n |  j | j d t j ƒ t  r| GHqn: X| rë|  j d ƒ n  |	 d  k	 r|  j d |	 f ƒ n  | j d |  j d ƒ ƒ } |  j | d |  j d ƒ f ƒ y | j d d ƒ }	 Wng t j k
 rÇ} t j d4 k  rœ|  j | d t j ƒ n |  j | j d t j ƒ t  r| GHqn: X| rÞ|  j d ƒ n  |	 d  k	 r|  j d |	 f ƒ n  |  j	 j ƒ  t j k rË| j d ƒ } t  r:d G| GHn  | j d d d d d ƒ} t  rgd G| GHn  | d d k r‡|  j d ƒ n  | j d ƒ }
 t  r¨d G|
 GHn  |
 d d k rË|  j d ƒ qËn  | j d ƒ | j  ƒ  y | j ƒ  } Wn} t j! k
 rq} | rat j d5 k  r6|  j | d t j" ƒ n |  j | j d t j" ƒ t  rn| GHqnqˆ|  j d ƒ n X| rˆ|  j d ƒ n  | j ƒ  | j# t j$ ƒ } |  j | j ƒ  | j ƒ  ƒ | j% d d  t j& ƒ |  j | j ƒ  | j ƒ  ƒ |  j | j ƒ  d d  ƒ | j% d d! t j& d d d d" ƒ|  j | j ƒ  d d# ƒ | j' ƒ  | j' ƒ  | ro| j( ƒ  n  i
 d6 d$ 6d7 d% 6t j$ f d& 6d8 d' 6d9 d( 6d: d) 6d; d* 6d< d+ 6d d, t j& f d- 6d= d. 6} x¸ | j) ƒ  D]ª \ } } y) t  rûd/ | GHn  t* | | ƒ | Œ  Wna t j+ k
 rr} t j d> k  rJ|  j | d d ƒ n |  j | j d d ƒ t  r„| GHq„qÚX|  j d0 | ƒ qÚW|  j	 j
 d | ƒ } |  j	 j' ƒ  ~ d  S(?   Ns   
s   -=i   sC   Running %s.test03_SimpleCursorStuff (get_error %s, set_error %s)...Rl   i    i   id   i   i   s   unexpected DBNotFoundErrors   %s != len(%r)t   0505s   empty valueR;   s   bad keys   expected exceptions   expected None: %rt   0404s   bad datat   011s   searched for '011', found: t   dlent   doffs%   searched (partial) for '011', found: s   expected empty data portions!   search for 'empty value' returneds   empty value lookup failedt   0499s   unexpected DBKeyEmptyErrors"   DBKeyEmptyError exception expecteds   a new valuet   eri   s   a newer valuet   currentRS   t   dupt   firstRR   t   nextt   prevt   lastRk   R?   t   sets-   attempting to use a closed cursor's %s methods8   no exception raised when using a buggy cursor's%s method(   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (    (    (    (   i    (    (    (    (   Rx   (   i   i   (,   R   RQ   R   R   R1   R   t   DB_AUTO_COMMITt	   txn_beginR)   R+   t   cursorR   R‚   RT   RU   RV   R
   RW   RX   RY   t   get_current_sizeRA   R   R=   R„   Rƒ   R…   R>   R_   t   get_typet   DB_BTREEt	   set_rangeRS   t   DBKeyEmptyErrort   DB_KEYEMPTYR€   t   DB_POSITIONR?   t
   DB_CURRENTR7   R@   Ro   t   getattrt   DBError(   R   t   get_raises_errort   set_raises_errorRl   t   cRc   t   countRb   t   rec2t   nt   evt   c2t   methods_to_testt   methodRX   t	   oldcursor(    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test03_SimpleCursorStuff6  s*   
 	"%
 	     
 
"


	 	c         C   sa   t  r% d Gd d GHd |  j j GHn  |  j j d ƒ } |  j | d ƒ |  j d d d	 d ƒ d  S(
   Ns   
s   -=i   s<   Running %s.test03b_SimpleCursorStuffWithoutGetReturnsNone...i    i   R“   i   R”   (   R   RQ   R   R+   t   set_get_returns_noneR
   Rž   (   R   t   old(    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt*   test03b_SimpleCursorWithoutGetReturnsNone0ó  s    c         C   sQ   t  r% d Gd d GHd |  j j GHn  |  j j d ƒ } |  j d d d d ƒ d  S(	   Ns   
s   -=i   s<   Running %s.test03b_SimpleCursorStuffWithoutGetReturnsNone...i   R“   i    R”   (   R   RQ   R   R+   RŸ   Rž   (   R   R    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt'   test03b_SimpleCursorWithGetReturnsNone1þ  s    c         C   sƒ   t  r% d Gd d GHd |  j j GHn  |  j j d ƒ } |  j | d ƒ |  j j d ƒ } |  j | d ƒ |  j d d d	 d ƒ d  S(
   Ns   
s   -=i   s<   Running %s.test03c_SimpleCursorStuffWithoutSetReturnsNone...i   i   R“   i    R”   (   R   RQ   R   R+   RŸ   R
   Rž   (   R   R    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt#   test03c_SimpleCursorGetReturnsNone2	  s    i   i   c         C   sr   |  j  j ƒ  } | j t j ƒ |  j t j | j ƒ  ƒ | j d t j ƒ |  j t j | j ƒ  ƒ | j ƒ  d  S(   Nt   priority(	   R+   Rˆ   t   set_priorityR   t   DB_PRIORITY_VERY_LOWR
   t   get_priorityt   DB_PRIORITY_HIGHR7   (   R   R•   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test03d_SimpleCursorPriority  s    c         C   sX  |  j  } t r. d Gd d GHd |  j j GHn  d } d d d d } | j | | ƒ |  j | j | ƒ | ƒ |  j | j | d	 d
 d d ƒd d ƒ | j d d d d ƒ |  j | j d d	 d d d ƒd ƒ |  j t j	 k rT| j | d d	 d d d ƒ|  j | j | ƒ d ƒ | j | d d	 d d d ƒ|  j | j | ƒ d ƒ n  d  S(   Ns   
s   -=i   s%   Running %s.test04_PartialGetAndPut...t   partialTestt   1iè  t   2R{   i   R|   iÞ  i
   t   partialtest2i0u  t   robini   t   0000iÐ  i    t   1111i   i   t   0011110t
   1111111111t
   2222222222(
   R+   R   RQ   R   R?   R
   RR   R/   R   RZ   (   R   R+   RD   RE   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test04_PartialGetAndPut!  s$    	%c         C   s†   |  j  } t r. d Gd d GHd |  j j GHn  xQ t d d d ƒ D]= } d | } | j | d	 | ƒ |  j | j | ƒ | ƒ qA Wd  S(
   Ns   
s   -=i   s   Running %s.test05_GetSize...i   iPÃ  iô  s   size%sR«   (   R+   R   RQ   R   R<   R?   R
   t   get_size(   R   R+   t   iRD   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test05_GetSize@  s    	
c         C   sŠ   |  j  } t r. d Gd d GHd |  j j GHn  | j d d ƒ | j ƒ  } |  j | d k d ƒ | j ƒ  } |  j | d	 d
 | f ƒ d  S(   Ns   
s   -=i   s   Running %s.test06_Truncate...t   abcdet   ABCDEi   s,   truncate returned <= 0 on non-empty databasei    s*   truncate on empty DB returned nonzero (%r)(   R+   R   RQ   R   R?   t   truncateRt   R
   (   R   R+   RF   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test06_TruncateP  s    	c         C   s3   |  j  j ƒ  t j |  j ƒ } | j |  j ƒ d  S(   N(   R+   R7   R   R*   R   t   verifyR'   (   R   R+   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test07_verify_  s    c         C   s[   |  j  j d d ƒ |  j |  j  j d ƒ t k d ƒ |  j |  j  j d ƒ t k d ƒ d  S(   NR¸   R¹   s    DB->exists() returns wrong valueRC   (   R+   R?   Rt   t   existst   Truet   False(   R   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test08_existsi  s
    i   c         C   sã   |  j  } |  j d | j d t j ƒ ƒ |  j d | j d t j ƒ ƒ | j d d ƒ | j d d ƒ | j d d ƒ | j d	 d
 ƒ | j d ƒ | j d ƒ | j d d d d	 d d  d d d d d d d t j t j Bƒ d  S(   Ni    R   R¸   R¹   t   bcdet   BCDEt   abct   ABCt   montyt   pythont   startt   stopRl   t   compact_fillpercenti*   t   compact_pagesi   t   compact_timeouti€ðú(	   R+   R
   t   compactR   t   DB_FREELIST_ONLYR?   RS   R)   t   DB_FREE_SPACE(   R   R+   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test_compacts  s    	i   N(   i   i   (   i   i   (   i   i   ("   R   R   R   t
   DB_UNKNOWNR   R-   R1   R/   R2   R)   R0   R   R%   R#   R=   R6   R:   R5   R>   Re   Rq   Rw   Rž   R¡   R¢   R£   R   R©   R´   R·   R»   R½   RÁ   RÐ   (    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyR   #   s>   		/	
		b	=	½			
						t   BasicBTreeTestCasec           B   s   e  Z e j Z RS(    (   R   R   R   R‹   R   (    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyRÒ   ‡  s   t   BasicHashTestCasec           B   s   e  Z e j Z RS(    (   R   R   R   t   DB_HASHR   (    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyRÓ   ‹  s   t    BasicBTreeWithThreadFlagTestCasec           B   s   e  Z e j Z e j Z RS(    (   R   R   R   R‹   R   t	   DB_THREADR1   (    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyRÕ     s   	t   BasicHashWithThreadFlagTestCasec           B   s   e  Z e j Z e j Z RS(    (   R   R   R   RÔ   R   RÖ   R1   (    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyR×   ”  s   	t   BasicWithEnvTestCasec           B   s7   e  Z e j Z d  Z e j e j Be j BZ d „  Z	 RS(   i   c         C   sy   |  j  s d  St r2 d Gd d GHd |  j j GHn  |  j j ƒ  |  j d } |  j  j |  j d  | ƒ |  j  j	 | ƒ d  S(   Ns   
s   -=i   s'   Running %s.test09_EnvRemoveAndRename...s   .renamed(
   R   R   RQ   R   R+   R7   R'   t   dbrenameR)   t   dbremove(   R   t   newname(    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test09_EnvRemoveAndRename   s    	(
   R   R   R   RÖ   R1   R   t   DB_INIT_MPOOLt   DB_INIT_LOCKR%   RÜ   (    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyRØ   ™  s   	t   BasicBTreeWithEnvTestCasec           B   s   e  Z e j Z RS(    (   R   R   R   R‹   R   (    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyRß   ±  s   t   BasicHashWithEnvTestCasec           B   s   e  Z e j Z RS(    (   R   R   R   RÔ   R   (    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyRà   µ  s   t   BasicTransactionTestCasec           B   s  e  Z e j d k  s3 e j d k rB e j d k  rB d d „ Z n  e j e j BZ	 d Z
 e j e j Be j Be j BZ e j Z d „  Z d „  Z d „  Z e j ƒ  d k r¸ d „  Z n  d „  Z d „  Z e j ƒ  d k rd „  Z d „  Z d „  Z d „  Z n  RS(   i   i   i   i    c         C   s   |  j  | | k d | ƒS(   Nt   msg(   Rt   (   R   t   at   bRâ   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   assertIn¾  s    i   c         C   s   |  j  j ƒ  t j |  ƒ d  S(   N(   Rl   R@   R   R:   (   R   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyR:   È  s    c         C   s8   |  j  j ƒ  } t j |  d | ƒ|  j  j ƒ  |  _ d  S(   NRB   (   R   R‡   R   R5   Rl   (   R   Rl   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyR5   Í  s    c         C   sÛ  |  j  } t r. d Gd d GHd |  j j GHn  |  j | j d d |  j ƒd  ƒ | j d d |  j ƒ |  j | j d d |  j ƒd ƒ |  j j	 ƒ  |  j | j d ƒ d  ƒ |  j
 j ƒ  |  _ |  j | j d d |  j ƒd  ƒ | j d d |  j ƒ |  j | j d d |  j ƒd ƒ |  j j ƒ  |  j | j d ƒ d ƒ |  j
 j ƒ  |  _ | j |  j ƒ } | j ƒ  } d } xD | d  k	 r¼| d	 } t r­| d
 d k r­| GHn  | j ƒ  } qyW|  j | |  j d	 ƒ | j ƒ  |  j j ƒ  |  j
 j d d d ƒ |  j
 j d ƒ } |  j d | ƒ |  j d | ƒ |  j d | ƒ |  j d | ƒ |  j
 j t j t j Bƒ } |  j | d  ƒ xC | D]; } t ržd | GHn  |  j
 j t j ƒ } |  j | ƒ q†W|  j
 j ƒ  |  _ d  S(   Ns   
s   -=i   s!   Running %s.test06_Transactions...s   new recRl   s   this is a new recordi    i   id   t   magicR   t   cur_filet   region_nowaits
   log file: (   R+   R   RQ   R   R
   RR   Rl   R)   R?   t   abortR   R‡   R@   Rˆ   R   R‚   R=   R7   t   txn_checkpointt   log_statRå   t   log_archiveR   t   DB_ARCH_ABSt   DB_ARCH_LOGt   assertNotEqualt   DB_ARCH_REMOVERt   (   R   R+   R•   Rc   R–   t   statDictt   logst   log(    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test06_TransactionsÔ  sV    	""

i   i   c         C   sŸ   |  j  j ƒ  } |  j j d d d | ƒ| j ƒ  |  j  j ƒ  } |  j |  j j d d | ƒt k d ƒ |  j |  j j d d | ƒt k d ƒ | j	 ƒ  d  S(   NR¸   R¹   Rl   s    DB->exists() returns wrong valueRC   (
   R   R‡   R+   R?   R@   Rt   R¾   R¿   RÀ   Ré   (   R   Rl   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyRÁ     s    
!!c         C   s©   |  j  } t r. d Gd d GHd |  j j GHn  | j d d ƒ |  j j ƒ  } | j | ƒ } |  j | d k d ƒ | j | ƒ } |  j	 | d	 d
 | f ƒ | j
 ƒ  d  S(   Ns   
s   -=i   s    Running %s.test09_TxnTruncate...R¸   R¹   i   s,   truncate returned <= 0 on non-empty databasei    s*   truncate on empty DB returned nonzero (%r)(   R+   R   RQ   R   R?   R   R‡   Rº   Rt   R
   R@   (   R   R+   Rl   RF   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test09_TxnTruncate  s    	c         C   s–   |  j  j ƒ  } | j ƒ  y | j ƒ  Wn t j k
 r? } n
 Xt d ‚ |  j  j ƒ  } | j ƒ  y | j ƒ  Wn t j k
 rˆ } n
 Xt d ‚ d  S(   NsB   DBTxn.abort() called after DB_TXN no longer valid w/o an exceptionsC   DBTxn.commit() called after DB_TXN no longer valid w/o an exception(   R   R‡   Ré   R   R’   t   RuntimeErrorR@   (   R   Rl   t   e(    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test10_TxnLateUse-  s    
	
c         C   sy   |  j  j ƒ  } |  j | j ƒ  d ƒ | j d ƒ |  j | j ƒ  d ƒ | j d ƒ |  j | j ƒ  d ƒ | j ƒ  d  S(   NR;   t   XXYY(   R   R‡   R
   t   get_namet   set_nameRé   (   R   Rl   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test_txn_nameE  s    c         C   sF   |  j  j ƒ  } | j d t j ƒ | j d d t j ƒ| j ƒ  d  S(   Ni‡Ö iÎÊ# R   (   R   R‡   t   set_timeoutR   t   DB_SET_LOCK_TIMEOUTt   DB_SET_TXN_TIMEOUTRé   (   R   Rl   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test_txn_set_timeoutQ  s    c         C   s   |  j  |  j j ƒ  d ƒ d  S(   Ni   (   R
   R   t
   get_tx_max(   R   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test_get_tx_maxY  s    c         C   s    |  j  |  j j ƒ  |  j ƒ d  S(   N(   R
   R   t   get_tx_timestampR    (   R   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test_get_tx_timestamp\  s    (   i   i   (   i   i    (   i   i   N(   i   i   (   i   i   (   R   R   RU   RV   R)   Rå   R   RÖ   R†   R1   R   RÝ   RÞ   t   DB_INIT_TXNR%   R#   R:   R5   Rô   R   RÁ   Rõ   Rø   Rü   R   R  R  (    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyRá   »  s(   
				:					t   BTreeTransactionTestCasec           B   s   e  Z e j Z RS(    (   R   R   R   R‹   R   (    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyR  a  s   t   HashTransactionTestCasec           B   s   e  Z e j Z RS(    (   R   R   R   RÔ   R   (    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyR  d  s   t   BTreeRecnoTestCasec           B   s#   e  Z e j Z e j Z d  „  Z RS(   c         C   s  |  j  } t r. d Gd d GHd |  j j GHn  | j d ƒ } |  j t | ƒ t d ƒ ƒ |  j t | ƒ d ƒ t r d G| GHn  | j ƒ  } | j	 d ƒ | j
 ƒ  } |  j t | ƒ t d	 ƒ ƒ t rÔ d
 G| GHn  | j ƒ  } |  j | j | ƒ | ƒ | j ƒ  d  S(   Ns   
s   -=i   s!   Running %s.test09_RecnoInBTree...iÈ   i   s   Record #200 is t   0200i   s   recno of d['0200'] is (    (   R+   R   RQ   R   RR   R
   Ra   RA   Rˆ   R…   t	   get_recnoR   t	   set_recnoR7   (   R   R+   Rc   R•   RF   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test09_RecnoInBTreeo  s$    	(   R   R   R   R‹   R   t	   DB_RECNUMR/   R  (    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyR  k  s   		t    BTreeRecnoWithThreadFlagTestCasec           B   s   e  Z e j Z RS(    (   R   R   R   RÖ   R1   (    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyR  ‰  s   t   BasicDUPTestCasec           B   s   e  Z e j Z d  „  Z RS(   c   	      C   sµ  |  j  } t r. d Gd d GHd |  j j GHn  | j d d ƒ x$ d j ƒ  D] } | j d | ƒ qK W| j d	 d
 ƒ | j d ƒ } |  j | d ƒ t r¢ | GHn  | j ƒ  } | j	 d ƒ } |  j | d ƒ | j
 ƒ  } |  j | d ƒ | j	 d ƒ } | j ƒ  } |  j | d ƒ | j ƒ  } |  j | d ƒ | j	 d ƒ } x* | d  k	 rkt r\| GHn  | j ƒ  } qBW| j	 d ƒ | j ƒ  } |  j | d d ƒ t r§| GHn  | j ƒ  d  S(   Ns   
s   -=i   s"   Running %s.test10_DuplicateKeys...t   dup0t   befores-   The quick brown fox jumped over the lazy dog.t   dup1t   dup2t   aftert   Thet   quicki	   i    (   R  R  (   R  R  (   R  R  (   R+   R   RQ   R   R?   t   splitRR   R
   Rˆ   R…   R‚   R–   t   next_dupR)   t
   next_nodupRï   R7   (	   R   R+   RC   RE   R•   Rc   t   next_regR–   R  (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test10_DuplicateKeys‘  sD    	(   R   R   R   RZ   R/   R  (    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyR  Ž  s   	t   BTreeDUPTestCasec           B   s   e  Z e j Z RS(    (   R   R   R   R‹   R   (    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyR  À  s   t   HashDUPTestCasec           B   s   e  Z e j Z RS(    (   R   R   R   RÔ   R   (    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyR  Ã  s   t   BTreeDUPWithThreadTestCasec           B   s   e  Z e j Z e j Z RS(    (   R   R   R   R‹   R   RÖ   R1   (    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyR  Æ  s   	t   HashDUPWithThreadTestCasec           B   s   e  Z e j Z e j Z RS(    (   R   R   R   RÔ   R   RÖ   R1   (    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyR  Ê  s   	t   BasicMultiDBTestCasec           B   s    e  Z d  Z d „  Z d „  Z RS(   R   c         C   s$   |  j  t j k r t j St j Sd  S(   N(   R   R   R‹   RÔ   (   R   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt	   otherTypeÔ  s    c   
      C   s_  |  j  } t r. d Gd d GHd |  j j GHn  t j |  j ƒ } | j |  j d |  j	 |  j
 t j Bƒ t j |  j ƒ } | j |  j d |  j ƒ  |  j
 t j Bƒ x- d j ƒ  D] } | j | |  j | ƒ ƒ q® Wx% t j D] } | j | | d ƒ qÛ W| j ƒ  | j ƒ  | j ƒ  | j ƒ  | j ƒ  | j ƒ  d  |  _  } } } t j |  j ƒ |  _  } | j |  j |  j d	 |  j
 ƒt j |  j ƒ } | j |  j d d	 |  j
 ƒt j |  j ƒ } | j |  j d d	 |  j
 ƒ| j ƒ  } | j ƒ  } | j ƒ  } d
 } | j ƒ  }	 xD |	 d  k	 rZ| d } t rK| d d
 k rK|	 GHn  | j ƒ  }	 qW|  j | |  j ƒ d
 } | j ƒ  }	 x4 |	 d  k	 r¶| d } t r§|	 GHn  | j ƒ  }	 qƒW|  j | d ƒ d
 } | j ƒ  }	 x4 |	 d  k	 r| d } t r |	 GHn  | j ƒ  }	 qÜW|  j | t t j ƒ ƒ | j ƒ  | j ƒ  | j ƒ  | j ƒ  | j ƒ  d  S(   Ns   
s   -=i   s   Running %s.test11_MultiDB...t   secondt   thirds,   The quick brown fox jumped over the lazy dogiF   R   i    i   i2   i	   (   R+   R   RQ   R   R   R*   R   R$   R'   R   R1   R&   R!  R  R?   R>   t   stringt   lettersR^   R7   R)   R0   Rˆ   R   R‚   R
   R=   RA   (
   R   t   d1t   d2t   d3RC   t   c1Rš   t   c3R–   Rc   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test11_MultiDBÚ  sv    	












(   R   R   R0   R!  R+  (    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyR   Ñ  s   	t   BTreeMultiDBTestCasec           B   s7   e  Z e j Z e j Z d  Z e j e j Be j	 BZ
 RS(   i   (   R   R   R   R‹   R   RÖ   R1   R   RÝ   RÞ   R%   (    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyR,  )  s   		t   HashMultiDBTestCasec           B   s7   e  Z e j Z e j Z d  Z e j e j Be j	 BZ
 RS(   i   (   R   R   R   RÔ   R   RÖ   R1   R   RÝ   RÞ   R%   (    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyR-  /  s   		t   PrivateObjectc           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s
   |  `  d  S(   N(   t   obj(   R   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyR:   7  s    c         C   s   |  j  |  j j ƒ  d  ƒ d  S(   N(   R
   R/  t   get_privateR)   (   R   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test01_DefaultIsNone:  s    c         C   s<   d } |  j  j | ƒ |  j  j ƒ  } |  j | | k ƒ d  S(   Ns   example of private object(   R/  t   set_privateR0  Rt   (   R   Rã   Rä   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test02_assignment=  s    c         C   so   d } t  j | ƒ } |  j j | ƒ |  j | d t  j | ƒ ƒ |  j j d  ƒ |  j | t  j | ƒ ƒ d  S(   Ns   example of private objecti   (   RU   t   getrefcountR/  R2  R
   R)   (   R   Rã   t   refcount(    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test03_leak_assignmentC  s    c         C   sK   d } t  j | ƒ } |  j j | ƒ d  |  _ |  j | t  j | ƒ ƒ d  S(   Ns   example of private object(   RU   R4  R/  R2  R)   R
   (   R   Rã   R5  (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test04_leak_GCK  s
    	(   R   R   R:   R1  R3  R6  R7  (    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyR.  6  s
   				t   DBEnvPrivateObjectc           B   s   e  Z d  „  Z RS(   c         C   s   t  j ƒ  |  _ d  S(   N(   R   R   R/  (   R   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyR6   S  s    (   R   R   R6   (    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyR8  R  s   t   DBPrivateObjectc           B   s   e  Z d  „  Z RS(   c         C   s   t  j ƒ  |  _ d  S(   N(   R   R*   R/  (   R   (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyR6   W  s    (   R   R   R6   (    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyR9  V  s   t   CrashAndBurnc           B   s&   e  Z e j ƒ  d k  r$ d „  Z n  RS(   i   i   c         C   s7   d d  l  } |  j t j t j t j ƒ | j ƒ  d  S(   Niÿÿÿÿ(   t   gcR3   R   R4   R   t   DB_RPCCLIENTt   collect(   R   R;  (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   test02_DBEnv_dealloc`  s    (   i   i   (   R   R   R   R   R>  (    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyR:  Z  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 ƒ ƒ |  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   RÒ   RÓ   RÕ   R×   Rß   Rà   R  R  R  R  R  R  R  R  R,  R-  R8  R9  R:  (   t   suite(    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt
   test_suitej  s,    t   __main__t   defaultTestRD  (-   t   __doc__R8   t   errnoR$  R    R?  R   RU   t   test_allR   R   R   R   R   RG   t   TestCaseR   R   RÒ   RÓ   RÕ   R×   RØ   Rß   Rà   Rá   R  R  R  R  R  R  R  R  R  R   R,  R-  R.  R8  R9  R:  RD  R   t   main(    (    (    s,   /sys/lib/python2.7/bsddb/test/test_basics.pyt   <module>   sP   (ÿ ÿ f¦2X	