Ñò
I'Lc           @   s…   d  Z  d d k Z d d k Z d d k Z d d k Td e i f d „  ƒ  YZ d e i f d „  ƒ  YZ e d j o e i	 ƒ  n d S(	   s'   benoitc@e-engura.com (BenoÃ®t Chesneau)iÿÿÿÿN(   t   *t   DocumentTestCasec           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 RS(   c         C   s   t  ƒ  |  _ d  S(   N(   t   Servert   server(   t   self(    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   setUp   s    c         C   s@   y |  i  i d ƒ Wn n Xy |  i  i d ƒ Wn n Xd  S(   Nt   couchdbkit_testt   couchdbkit_test2(   R   t	   delete_db(   R   (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   tearDown   s    c      
   C   s{  |  i  i d ƒ } d t f d „  ƒ  Y} | | _ | ƒ  } d | _ y d | _ Wn. t j
 o" } |  i t | ƒ d j ƒ n X| i	 ƒ  |  i t
 | d ƒ ƒ | i d d j p t ‚ d t f d	 „  ƒ  Y} | | _ | ƒ  } d | _ y d | _ Wn. t j
 o" } |  i t | ƒ d j ƒ n X| i	 ƒ  |  i t
 | d ƒ ƒ |  i | i d d j ƒ |  i  i d ƒ d  S(
   NR   t   Testc           B   s   e  Z e Z e ƒ  Z RS(    (   t   __name__t
   __module__t   Falset   _allow_dynamic_propertiest   StringPropertyt   foo(    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR
   !   s   t   testt   blas3   bar is not defined in schema (not a valid property)t   barR   c           B   s   e  Z e ƒ  Z RS(    (   R   R   R   R   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR
   1   s   (   R   t	   create_dbt   Documentt   _dbR   R   t   AttributeErrort   assert_t   strt   savet   hasattrt   _doct   AssertionErrort   StaticDocumentR   (   R   t   dbR
   t   doct   e(    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testStaticDocumentCreation   s0    			
			
c         C   s×   d t  f d „  ƒ  Y} d t  f d „  ƒ  Y} | d d ƒ } |  i t | d ƒ d  j	 ƒ |  i | i d j ƒ | d d d d ƒ } |  i | i d j ƒ |  i | i d j ƒ | d d ƒ } |  i | i d	 j ƒ d  S(
   NR
   c           B   s   e  Z RS(    (   R   R   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR
   C   s   t   Test2c           B   s   e  Z e d  d ƒ Z RS(   t   defaultR   (   R   R   R   t   string(    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR#   F   s   R%   t   essait   string2t   essai2R   (   R   R   t   getattrt   NoneR%   R'   (   R   R
   R#   R    t   doc1t   doc2(    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testDynamicDocumentCreationB   s    c         C   s©   d t  f d „  ƒ  Y} | d d ƒ } | ` |  i t | d ƒ d  j ƒ |  i | d d  j ƒ d t  f d „  ƒ  Y} | d d ƒ } | ` |  i t | d ƒ d  j ƒ d  S(   NR
   c           B   s   e  Z e d  d ƒ Z RS(   R$   R   (   R   R   R   R%   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR
   V   s   R%   R   R#   c           B   s   e  Z RS(    (   R   R   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR#   ^   s   (   R   R%   R   R)   R*   (   R   R
   R    R#   R+   (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testDeletePropertyU   s    c         C   se   d t  f d „  ƒ  Y} | ƒ  } |  i d | j ƒ |  i d | j ƒ d | _ |  i d | j ƒ d  S(   NR
   c           B   s   e  Z e d  d ƒ Z RS(   R$   R   (   R   R   R   R%   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR
   g   s   R%   R   (   R   R   R   (   R   R
   R    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testContainf   s    		c         C   s^   d t  f d „  ƒ  Y} | ƒ  } |  i t | ƒ d j ƒ d | _ |  i t | ƒ d j ƒ d  S(   NR
   c           B   s    e  Z e d  d ƒ Z e ƒ  Z RS(   R$   R   (   R   R   R   R%   R'   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR
   q   s   i   t   4i   (   R   R   t   lent   string3(   R   R
   R    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testLenp   s
    		c         C   sâ   |  i  i d ƒ } d t f d „  ƒ  Y} | | _ | ƒ  } d | _ | i ƒ  |  i | i d  j	 ƒ | i	 | i ƒ } |  i | d d j ƒ | d d ƒ } | i ƒ  | i	 | i ƒ } |  i | d d j ƒ |  i  i
 d ƒ d  S(   NR   R
   c           B   s    e  Z e d  d ƒ Z e ƒ  Z RS(   R$   R   (   R   R   R   R%   R'   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR
   |   s   t   test2R'   R2   R   (   R   R   R   R   R'   R   R   t   _idR*   t   getR   (   R   R   R
   R    R+   R,   t   doc3(    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt	   testStorez   s    			

c   	      C   sR  |  i  i d ƒ } d t f d „  ƒ  Y} d t f d „  ƒ  Y} | d d ƒ } |  i | i d  j ƒ | d d ƒ } |  i | i d  j ƒ | d d	 ƒ } |  i | i d  j ƒ y | i | | | g ƒ Wn. t j
 o" } |  i t | ƒ d
 j ƒ n X| i	 | ƒ | d d ƒ } y | i | | | | g ƒ Wn. t
 j
 o" } |  i t | ƒ d j ƒ n X| i | | | g ƒ |  i | i d  j	 ƒ |  i | i d  j	 ƒ |  i | i d  j	 ƒ |  i | i d  j	 ƒ |  i | i d  j	 ƒ |  i | i d  j	 ƒ |  i | i d j ƒ |  i | i d j ƒ |  i | i d	 j ƒ |  i  i d ƒ d  S(   NR   R
   c           B   s   e  Z e ƒ  Z RS(    (   R   R   R   R%   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR
   ’   s   R#   c           B   s   e  Z e ƒ  Z RS(    (   R   R   R   R%   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR#   •   s   R%   R   R4   t   test3s&   doc database required to save documentt   bad_docs4   one of your documents does not have the correct type(   R   R   R   R   R5   R*   t	   bulk_savet	   TypeErrorR   t   set_dbt
   ValueErrort   _revR%   R   (	   R   R   R
   R#   R+   R,   R7   R!   R:   (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testBulkSave   s<    c         C   s»   |  i  i d ƒ } d t f d „  ƒ  Y} | | _ | ƒ  } d | _ | i ƒ  | i | i ƒ } |  i | i d j ƒ d | _	 | i ƒ  | i | i ƒ } |  i | ƒ |  i  i
 d ƒ d  S(   NR   R
   c           B   s    e  Z e d  d ƒ Z e ƒ  Z RS(   R$   R   (   R   R   R   R%   R'   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR
   ¼   s   R4   t   blah(   R   R   R   R   R'   R   R6   R5   R   R2   R   (   R   R   R
   R    R,   R7   (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testGetº   s    			
	
c         C   so  |  i  i d ƒ } d t f d „  ƒ  Y} | | _ | d d d t i d d d	 d
 d d ƒ d t i d d d	 ƒ d t i d
 d d ƒ d t i d ƒ d d ƒ } | i	 ƒ  | i
 | i ƒ } |  i  i d ƒ |  i t | i t ƒ ƒ |  i t | i t i ƒ ƒ |  i t | i t i ƒ ƒ |  i t | i t i ƒ ƒ |  i t | i t i ƒ ƒ |  i t | i t ƒ ƒ d  S(   NR   R
   c           B   s   e  Z RS(    (   R   R   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR
   Ñ   s   t   fieldR   t   field1iØ  i   i
   i   i    t   field2t   field3t   field4s   45.4t   field5gš™™™™™@(   R   R   R   R   t   datetimet   datet   timet   decimalt   DecimalR   R6   R5   R   R   t
   isinstanceRC   t
   basestringRD   RE   RF   RG   RH   t   float(   R   R   R
   R    R+   (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testLoadDynamicPropertiesÏ   s$    		
c         C   sñ  d t  f d „  ƒ  Y} d t  f d „  ƒ  Y} d t  f d „  ƒ  Y} | ƒ  } | ƒ  } | ƒ  } | ƒ  } |  i | i d j ƒ |  i | i d d j ƒ |  i | i d j ƒ |  i | i d j ƒ |  i | i d d j ƒ |  i i d	 ƒ } | | _ | _ | _ | i ƒ  | i ƒ  | i ƒ  | i ƒ  | i | i	 ƒ }	 | i | i	 ƒ }
 | i | i	 ƒ } | i | i	 ƒ } |  i i
 d	 ƒ |  i |	 i d d j ƒ |  i |
 i d d j ƒ |  i | i d d j ƒ |  i | i d d j ƒ d  S(
   NR
   c           B   s   e  Z e d  d ƒ Z RS(   R$   R   (   R   R   R   R%   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR
   ç   s   R#   c           B   s   e  Z e d  d ƒ Z RS(   R$   R   (   R   R   R   R%   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR#   ê   s   t   Test3c           B   s   e  Z d  Z e d d ƒ Z RS(   t	   test_typeR$   R   (   R   R   t   doc_typeR   R%   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyRR   í   s   RT   RS   R   (   R   R   t	   _doc_typeR   R   R   R   R   R6   R5   R   (   R   R
   R#   RR   R+   R,   R7   t   doc4R   t   get1t   get2t   get3t   get4(    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testDocTypeæ   s6    				



c      	   C   sˆ   d t  f d „  ƒ  Y} d | f d „  ƒ  Y} | d d d d d	 d
 ƒ } | d d d d d	 d
 d d ƒ } |  i t | i ƒ d j ƒ d  S(   Nt   TestDocc           B   s   e  Z e ƒ  Z e ƒ  Z RS(    (   R   R   R   RD   RE   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR\     s   	t   TestDoc2c           B   s   e  Z e ƒ  Z RS(    (   R   R   R   RF   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR]     s   RD   t   aRE   t   bRF   t   cRG   t   di   (   R   R   R1   t   _dynamic_properties(   R   R\   R]   R    R,   (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testInheriting  s    	c         C   s  d t  f d „  ƒ  Y} h d d 6d d 6h h d d 6d	 6d
 6} | d d d d ƒ } | d d d d ƒ } |  i i d ƒ } | | _ | i ƒ  | i ƒ  | i | ƒ | i d ƒ } |  i t | ƒ d j ƒ t	 | ƒ d } |  i t
 | d ƒ ƒ |  i i d ƒ d  S(   NR\   c           B   s   e  Z e ƒ  Z e ƒ  Z RS(    (   R   R   R   RD   RE   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR\   "  s   	s   _design/testR5   t
   javascriptt   languagesG   function(doc) { if (doc.doc_type == "TestDoc") { emit(doc._id, doc);
}}t   mapt   allt   viewsRD   R^   RE   R_   R`   Ra   R   s   test/alli   i    (   R   R   R   R   R   t   save_doct   viewR   R1   t   listR   R   (   R   R\   t
   design_docR    R+   R   t   resultsR7   (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testView!  s&    	

c         C   sS  d t  f d „  ƒ  Y} h d d 6d d 6h h d d 6d	 6d
 6} | d d d d ƒ } | d d d d ƒ } |  i i d ƒ } | | _ | i ƒ  | i ƒ  | i | ƒ | i d ƒ } |  i t | ƒ d j ƒ |  i t	 | i
 ƒ  t ƒ t j ƒ | i d d t ƒ} |  i t | ƒ d j ƒ |  i t	 | i
 ƒ  | ƒ t j ƒ |  i i d ƒ d  S(   NR\   c           B   s   e  Z e ƒ  Z e ƒ  Z RS(    (   R   R   R   RD   RE   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR\   @  s   	s   _design/testR5   Rd   Re   sH   function(doc) { if (doc.doc_type == "TestDoc") { emit(doc._id, null);
}}Rf   Rg   Rh   RD   R^   RE   R_   R`   Ra   R   s   test/alli   t   include_docs(   R   R   R   R   R   Ri   Rj   R   R1   RN   t   firstt   dictt   TrueR   (   R   R\   Rl   R    R+   R   Rm   t   results2(    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testViewNoneValue?  s*    	

""c   	      C   s¤  d t  f d „  ƒ  Y} h d d 6d d 6h h d d 6d	 6d
 6} | d d d d ƒ } | d d d d ƒ } |  i i d ƒ } | | _ | i | ƒ | i d ƒ } |  i t | ƒ d j ƒ |  i t	 | i
 d t ƒ| i
 ƒ  } |  i | d  j ƒ | i d ƒ } | i ƒ  |  i t | ƒ d j ƒ | i
 ƒ  } |  i t | | ƒ t j ƒ | i ƒ  | i d ƒ } |  i t | ƒ d j ƒ |  i t | i
 ƒ |  i i d ƒ d  S(   NR\   c           B   s   e  Z e ƒ  Z e ƒ  Z RS(    (   R   R   R   RD   RE   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR\   a  s   	s   _design/testR5   Rd   Re   sG   function(doc) { if (doc.doc_type == "TestDoc") { emit(doc._id, doc);
}}Rf   Rg   Rh   RD   R^   RE   R_   R`   Ra   R   s   test/alli    t
   except_alli   i   (   R   R   R   R   Ri   Rj   R   R1   t   assertRaisest   NoResultFoundt   oneRr   R*   R   RN   t   MultipleResultsFoundR   (	   R   R\   Rl   R    R+   R   Rm   t   rstRx   (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testOne`  s6    	

c         C   sá   d t  f d „  ƒ  Y} h d d 6d d 6h h d d 6d	 6d
 6} | d d d d ƒ } | d d d d ƒ } |  i i d ƒ } | | _ | i ƒ  | i ƒ  | i | ƒ | i d ƒ } |  i t | ƒ d j ƒ |  i i	 d ƒ d  S(   NR\   c           B   s   e  Z e ƒ  Z e ƒ  Z RS(    (   R   R   R   RD   RE   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR\   Ž  s   	s   _design/testR5   Rd   Re   sM   function(doc) { if (doc.doc_type == "TestDoc") { emit(doc._id, doc.field1);}}Rf   Rg   Rh   RD   R^   RE   R_   R`   Ra   R   s   test/alli   (
   R   R   R   R   R   Ri   Rj   R   R1   R   (   R   R\   Rl   R    R+   R   Rm   (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testViewStringValue  s"    	

c         C   sÞ   d t  f d „  ƒ  Y} h d d 6} | d d d d ƒ } | d d	 d d
 ƒ } |  i i d ƒ } | | _ | i ƒ  | i ƒ  | i | ƒ } |  i t | ƒ d j ƒ t | ƒ d } |  i t	 | d ƒ ƒ |  i i
 d ƒ d  S(   NR\   c           B   s   e  Z e ƒ  Z e ƒ  Z RS(    (   R   R   R   RD   RE   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR\   ª  s   	sG   function(doc) { if (doc.doc_type == "TestDoc") { emit(doc._id, doc);
}}Rf   RD   R^   RE   R_   R`   Ra   R   i   i    (   R   R   R   R   R   t	   temp_viewR   R1   Rk   R   R   (   R   R\   Rl   R    R+   R   Rm   R7   (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testTempView©  s    
	

c         C   s²   |  i  i d ƒ } d t f d „  ƒ  Y} | | _ | ƒ  } | i ƒ  d } | i } | i | d d ƒ |  i | | i j ƒ | i d ƒ } |  i | | j ƒ |  i  i	 d ƒ d  S(   NR   t   Ac           B   s&   e  Z e d  d ƒ Z e d  d ƒ Z RS(   R$   R   i   (   R   R   R   t   st   IntegerPropertyt   i(    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR   Ä  s   u   un texte attachÃ©R   s
   text/plain(
   R   R   R   R   R   R?   t   put_attachmentR   t   fetch_attachmentR   (   R   R   R   R^   t   text_attachmentt   old_revR„   (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testDocumentAttachmentsÁ  s    		
	c         C   s®   |  i  i d ƒ } d t f d „  ƒ  Y} | | _ | ƒ  } | i ƒ  d } | i | d d ƒ | i d ƒ |  i t | i	 d ƒ |  i
 d | i d j ƒ |  i  i d ƒ d  S(   NR   R   c           B   s&   e  Z e d  d ƒ Z e d  d ƒ Z RS(   R$   R   i   (   R   R   R   R€   R   R‚   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR   Ø  s   s   un texte attachÃ©R   s
   text/plaint   _attachments(   R   R   R   R   R   Rƒ   t   delete_attachmentRv   t   ResourceNotFoundR„   t   assertFalseR   R   (   R   R   R   R^   R…   (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testDocumentDeleteAttachmentÖ  s    		
c            s¶   |  i  i d ƒ |  i  d } d t f d „  ƒ  Y‰  | ˆ  _ ‡  f d †  } |  i t | ƒ ˆ  i d ƒ } |  i | i d j ƒ ˆ  i ƒ  } |  i | i d  j	 ƒ |  i  i
 d ƒ d  S(   NR   R   c           B   s   e  Z e ƒ  Z RS(    (   R   R   R   R€   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR   í  s   c             s   ˆ  i  d ƒ }  d  S(   NR   (   R6   (   R^   (   R   (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   no_existñ  s    R   (   R   R   R   R   Rv   RŠ   t   get_or_createR   R5   R*   R   (   R   R   R   R^   R_   (    (   R   sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testGetOrCreateé  s    	(   R   R   R   R	   R"   R-   R.   R/   R3   R8   R@   RB   RQ   R[   Rc   Rn   Rt   R{   R|   R~   R‡   RŒ   R   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR      s*   			%			
	
		*			,			!	-				t   PropertyTestCasec           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 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sC   t  ƒ  |  _ y |  i i d ƒ |  _ Wn |  i d |  _ n Xd  S(   NR   (   R   R   R   R   (   R   (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR      s
    c         C   s"   y |  i  i d ƒ Wn n Xd  S(   NR   (   R   R   (   R   (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR	     s    c            sQ   d t  f d „  ƒ  Y} |  i | _ | ƒ  ‰  ‡  f d †  } |  i t ˆ  i ƒ d  S(   NR
   c           B   s   e  Z e d  e ƒ Z RS(   t   required(   R   R   R   Rr   R%   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR
     s   c              s   d ˆ  _  d  S(   Nt    (   R%   (    (   R   (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   ftest  s    (   R   R   R   Rv   t   BadValueErrorR   (   R   R
   R“   (    (   R   sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testRequired  s
    	c            sQ   d „  ‰ d t  f ‡ f d †  ƒ  Y} | ƒ  ‰  ‡  f d †  } |  i t | ƒ d  S(   Nc         S   s!   |  d j o t  d ƒ ‚ n d  S(   NR   (   R”   (   t   value(    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   test_validator  s    R
   c              s   e  Z e d  ˆ  ƒ Z RS(   t
   validators(   R   R   R   R%   (    (   R—   (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR
     s   c              s   d ˆ  _  d  S(   NR   (   R%   (    (   R   (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR“   !  s    (   R   Rv   R”   (   R   R
   R“   (    (   R   R—   sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testValidator  s
    		c            se   d t  f d „  ƒ  Y} | ƒ  ‰  ‡  f d †  } |  i t | ƒ d ˆ  _ |  i ˆ  i d d j ƒ d  S(   NR
   c           B   s   e  Z e ƒ  Z RS(    (   R   R   R   RC   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR
   &  s   c              s   d ˆ  _  d  S(   NR&   (   RC   (    (   R   (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR“   *  s    i   RC   (   R   Rv   R”   RC   R   R   (   R   R
   R“   (    (   R   sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testIntegerProperty%  s    		c            sŸ   d t  f d „  ƒ  Y} | ƒ  ‰  ‡  f d †  } |  i t | ƒ t i d d d d d d ƒ ˆ  _ |  i ˆ  i d	 d
 j ƒ ˆ  i } |  i t | t i ƒ ƒ d  S(   NR
   c           B   s   e  Z e ƒ  Z RS(    (   R   R   t   DateTimePropertyRC   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR
   3  s   c              s   d ˆ  _  d  S(   NR&   (   RC   (    (   R   (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR“   7  s    iØ  i   i
   i   i    RC   s   2008-11-10T08:00:00Z(   R   Rv   R”   RI   RC   R   R   RN   (   R   R
   R“   R–   (    (   R   sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testDateTimeProperty2  s    	!	c            s–   d t  f d „  ƒ  Y} | ƒ  ‰  ‡  f d †  } |  i t | ƒ t i d d d ƒ ˆ  _ |  i ˆ  i d d j ƒ ˆ  i } |  i t | t i ƒ ƒ d  S(	   NR
   c           B   s   e  Z e ƒ  Z RS(    (   R   R   t   DatePropertyRC   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR
   A  s   c              s   d ˆ  _  d  S(   NR&   (   RC   (    (   R   (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR“   E  s    iØ  i   i
   RC   s
   2008-11-10(	   R   Rv   R”   RI   RJ   RC   R   R   RN   (   R   R
   R“   R–   (    (   R   sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testDateProperty@  s    		c            s–   d t  f d „  ƒ  Y} | ƒ  ‰  ‡  f d †  } |  i t | ƒ t i d d d ƒ ˆ  _ |  i ˆ  i d d j ƒ ˆ  i } |  i t | t i ƒ ƒ d  S(   NR
   c           B   s   e  Z e ƒ  Z RS(    (   R   R   t   TimePropertyRC   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR
   P  s   c              s   d ˆ  _  d  S(   NR&   (   RC   (    (   R   (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR“   T  s    i   i    RC   s   08:00:00(	   R   Rv   R”   RI   RK   RC   R   R   RN   (   R   R
   R“   R–   (    (   R   sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testTimePropertyO  s    		c         C   s  d t  f d „  ƒ  Y} | d d d t i d d d d	 d
 d
 ƒ ƒ } |  i | i d d j ƒ |  i | i d d j ƒ |  i t | i t ƒ ƒ |  i t | i t i ƒ ƒ |  i | _	 | i
 ƒ  | i | i ƒ } | i } | i } |  i t | t ƒ ƒ |  i t | t i ƒ ƒ d  S(   NR
   c           B   s   e  Z e ƒ  Z e ƒ  Z RS(    (   R   R   R   RC   R›   RD   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR
   ^  s   	RC   R   RD   iØ  i   i
   i   i    s   2008-11-10T08:00:00Z(   R   RI   R   R   RN   RC   RO   RD   R   R   R   R6   R5   (   R   R
   R   R,   t   vt   v1(    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testMixProperties]  s    !
		c         C   s¶   d t  f d „  ƒ  Y} | d d d t i d d d d	 d
 d
 ƒ d d ƒ } |  i | _ | i ƒ  | i | i ƒ } | i } | i } |  i	 t
 | t i ƒ ƒ |  i	 t
 | t ƒ ƒ d  S(   NR
   c           B   s   e  Z e ƒ  Z e ƒ  Z RS(    (   R   R   R   RC   R›   RD   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR
   t  s   	RC   R   RD   iØ  i   i
   i   i    t   dynamic_field(   R   RI   R   R   R   R6   R5   RD   R¤   R   RN   RO   (   R   R
   R   R,   R¢   t   vd(    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testMixDynamicPropertiess  s    	
		c            s  d t  f d „  ƒ  Y‰  d t f ‡  f d †  ƒ  Y} | ƒ  } |  i d | i j ƒ d | i _ |  i | i i d j ƒ |  i | i d d d j ƒ |  i | _ | i ƒ  | i	 | i
 ƒ } |  i t | i ˆ  ƒ t j ƒ |  i | i i d j ƒ |  i | i d d d j ƒ d  S(   Nt   MySchemac           B   s   e  Z e ƒ  Z RS(    (   R   R   R   t   astring(    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR§   Š  s   t   MyDocc              s   e  Z e ˆ  ƒ Z RS(    (   R   R   t   SchemaPropertyt   schema(    (   R§   (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR©     s   R«   u   testR¨   (   t   DocumentSchemaR   R   R   R«   R¨   R   R   R   R6   R5   RN   Rr   (   R   R©   R    R,   (    (   R§   sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testSchemaProperty1‰  s    	
c            s¥   d t  f d „  ƒ  Y} |  i | _ | ƒ  ‰  |  i ˆ  i i d ƒ ‡  f d †  } |  i t | ƒ | ƒ  } y d | i _ t ‚ Wn t j
 o n Xd | i _ d  S(   Nt   Bc           B   s*   e  Z d  e f d „  ƒ  YZ e e ƒ Z RS(   t   b_schemac           B   s   e  Z e d  e d d ƒ Z RS(   R‘   R$   t   name(   R   R   R   Rr   R°   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR¯   £  s   (   R   R   R¬   R¯   Rª   R_   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR®   ¢  s   R°   c              s   d ˆ  i  _ d  S(   Ni   (   R_   R°   (    (   R_   (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt	   bad_value¬  s    i   u   test(	   R   R   R   t   assertEqualsR_   R°   Rv   R”   t   RuntimeError(   R   R®   R±   t   b1(    (   R_   sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testSchemaPropertyWithRequired¡  s    		
c            sm   d t  f d „  ƒ  Y} | ƒ  ‰  |  i ˆ  i h d d 6d d 6d d 6j ƒ ‡  f d †  } |  i t | ƒ d  S(	   NR   c           B   s   e  Z e ƒ  Z e d  ƒ Z RS(   i   (   R   R   t   unicodeR`   t   intR‚   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR   º  s   	u    R`   RT   i   R‚   c              s   d ˆ  _  d  S(   NR&   (   R‚   (    (   R^   (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR±   ¿  s    (   R   R   R   Rv   R”   (   R   R   R±   (    (   R^   sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testSchemaWithPythonTypes¹  s
    	+c         C   sž   d t  f d „  ƒ  Y} | ƒ  } d  | _ |  i | i d d  j ƒ |  i | _ | i ƒ  | i | i	 ƒ } |  i | i d  j ƒ |  i | i d d  j ƒ d  S(   NR   c           B   s   e  Z e ƒ  Z RS(    (   R   R   R   R€   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR   Å  s   R€   (
   R   R*   R€   R   R   R   R   R   R6   R5   (   R   R   R^   R_   (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testValueNoneÄ  s    		
c            s<  t  d t ƒ  ƒ } t  i | i   } |  i d | i j ƒ |  i t | i t ƒ ƒ | ƒ  } |  i | i d j ƒ |  i | i	 h d d 6d  d 6j ƒ t  d t d d ƒ ƒ } t  i | i   } | ƒ  ‰  |  i ˆ  i	 h d d 6d d 6j ƒ |  i ˆ  i d j ƒ ‡  f d †  } |  i t | ƒ |  i ˆ  i d j ƒ d  S(   NR‚   t   AnonymousSchemaRT   R$   iÿÿÿÿc              s   d ˆ  _  d  S(   NR   (   R‚   (    (   t   c3(    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR±   ä  s    (   R¬   R   t   buildRb   R   t   _propertiesRN   R‚   RU   R   R*   Rv   R”   (   R   R«   t   CR`   t   schema2t   C3R±   (    (   R»   sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testSchemaBuildÐ  s"    		c            sB   d t  f d „  ƒ  Y} | ƒ  ‰  ‡  f d †  } |  i t | ƒ d  S(   Nt   Fooc           B   s    e  Z e e d  e ƒ  ƒ ƒ Z RS(   R   (   R   R   Rª   R¬   R   R   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyRÂ   ë  s   c              s   d ˆ  i  _ d  S(   NR   (   R   R   (    (   R    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR±   ï  s    (   R   Rv   R”   (   R   RÂ   R±   (    (   R    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testSchemaPropertyValidation2ê  s    	c      
      sr  d d k  l  } d t f d „  ƒ  Y} | d d ƒ ‰  d t f ‡  f d †  ƒ  Y} | ƒ  } |  i | i h d d	 6d  d
 6d  d 6h d d	 6d d 6d 6j ƒ | d d d d d d d ƒ | _ |  i | i h d d 6d d	 6d  d
 6d  d 6h d d	 6d d 6d 6j ƒ |  i t | i | ƒ t j ƒ | d d d d d d d ƒ ˆ  _ |  i ˆ  i h d d 6d d	 6d d 6j ƒ |  i | i h d d 6d d	 6d  d
 6d  d 6h d d 6d d	 6d d 6d 6j ƒ | ƒ  } d | _	 |  i | i
 i | i
 i j ƒ |  i | i	 | i	 j ƒ d | i
 _ |  i | i
 i | i
 i j ƒ |  i | i	 | i	 j ƒ d | i
 _ |  i | i
 i d j ƒ d  S(   Niÿÿÿÿ(   RI   R   c           B   s   e  Z e ƒ  Z RS(    (   R   R   R   R€   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR   ö  s   R€   R   R®   c              s&   e  Z e ƒ  Z e ƒ  Z e ˆ  ƒ Z RS(    (   R   R   R   t   s1t   s2Rª   t   sm(    (   R^   (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR®   û  s   		RT   RÄ   RÅ   u   fooRÆ   iÙ  i   i   i   i:   i   iTÑ s   2009-02-06T18:58:20Zt   createds   2009-02-06T20:58:20Zt   t1t   t2t   t3(   RI   R¬   R   R   R   R*   RÇ   RN   Rr   RÄ   RÆ   t   s3(   R   RI   R   R®   R_   t   b2(    (   R^   sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testDynamicSchemaPropertyô  s@    	$!!		c            s  d d k  l  } d t f d „  ƒ  Y‰  d t f ‡  f d †  ƒ  Y} | ƒ  } |  i | i h d d 6d  d 6d  d	 6h d d 6d  d
 6d 6j ƒ d | i _ |  i | i h d d 6d  d 6d  d	 6h d d 6d d
 6d 6j ƒ | ƒ  } |  i | i h d d 6d  d 6d  d	 6h d d 6d  d
 6d 6j ƒ d | i _ |  i | i h d d 6d  d 6d  d	 6h d d 6d d
 6d 6j ƒ |  i | i i | i i j ƒ d  S(   Niÿÿÿÿ(   RI   R   c           B   s   e  Z e ƒ  Z RS(    (   R   R   R   R€   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR   (  s   R®   c              s&   e  Z e ƒ  Z e ƒ  Z e ˆ  ƒ Z RS(    (   R   R   R   RÄ   RÅ   Rª   RÆ   (    (   R   (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR®   +  s   		RT   RÄ   RÅ   R€   RÆ   RÈ   u   t1RÉ   u   t2(   RI   R¬   R   R   R   R*   RÆ   R€   (   R   RI   R®   R_   RÌ   (    (   R   sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testStaticSchemaProperty&  s     	$$	##c            sy  d t  f d „  ƒ  Y‰  d t f ‡  f d †  ƒ  Y} | ƒ  } |  i | i g  j ƒ ˆ  ƒ  } d | _ | i i | ƒ |  i | i h d d 6h d d 6d d 6g d	 6j ƒ ˆ  ƒ  } d
 | _ | i i | ƒ |  i | i h d d 6h d d 6d d 6h d d 6d d 6g d	 6j ƒ | i |  i ƒ | i	 ƒ  | i
 | i ƒ } |  i t | i ƒ d j ƒ |  i | i d i d j ƒ d  S(   NR   c           B   s   e  Z e ƒ  Z RS(    (   R   R   R   R€   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR   C  s   R®   c              s   e  Z e ˆ  ƒ Z RS(    (   R   R   t   SchemaListPropertyt   slm(    (   R   (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR®   F  s   R   RT   u   testR€   RÐ   R4   u   test2i   i    (   R¬   R   R   RÐ   R€   t   appendR   R=   R   R   R6   R5   R1   (   R   R®   R_   R^   t   a1R´   (    (   R   sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testSchemaListPropertyB  s"    			5		F
c            sñ  d d k  l  ‰  d t f ‡  f d †  ƒ  Y} | i |  i ƒ | ƒ  } |  i | i h d d 6g  d 6j ƒ | i ƒ  |  i | d ƒ |  i | d g  j ƒ | ƒ  } ˆ  d d	 d
 d d d d ƒ } | i i | ƒ |  i t	 | i ƒ d j ƒ |  i | i d ˆ  d d	 d
 d d d ƒ j ƒ |  i | i h d d 6d g d 6j ƒ | i i h d d 6ƒ |  i | i ˆ  d d	 d
 d d d ƒ h d d 6g j ƒ |  i | i h d d 6d h d d 6g d 6j ƒ | i ƒ  | i
 | i ƒ } |  i t	 | i ƒ d j ƒ |  i | i d ˆ  d d	 d
 d d d ƒ j ƒ |  i | i d d h d d 6g j ƒ | d d d d g ƒ } | i ƒ  |  i i
 | i d | i ƒ} |  i | i d d d g j ƒ g  | _ |  i | i g  j ƒ |  i | i ƒ  d g  j ƒ d  S(   Niÿÿÿÿ(   RI   R   c              s   e  Z e ˆ  ƒ Z RS(    (   R   R   t   ListPropertyt   l(    (   RI   (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR   ^  s   RT   RÕ   R5   iÙ  i   i   i   i8   i
   iÜÂ i   i    s   2009-04-13T22:56:10ZR   R€   i   R^   R_   R`   t   wrapper(   RI   R   R=   R   R   R   R   RÕ   RÑ   R1   R6   R5   t   wrapt   to_json(   R   R   R^   Ra   R_   (    (   RI   sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testListProperty\  s:    	$
	/'81
/'
	c            s¤  d d k  l  ‰  d t f ‡  f d †  ƒ  Y} | ƒ  } |  i | i h d d 6g  d 6j ƒ |  i t | i ƒ y | i ƒ  Wn t j
 o	 } n X|  i t | ƒ d j ƒ ˆ  d d	 d
 d d d d ƒ } | i	 i
 | ƒ |  i t | i	 ƒ d j ƒ |  i | i	 d ˆ  d d	 d
 d d d ƒ j ƒ |  i | i h d d 6d g d 6j ƒ | i ƒ  d t f d „  ƒ  Y} | ƒ  } |  i | i d t ƒ ƒ |  i | i ƒ  ƒ d  S(   Niÿÿÿÿ(   RI   R   c              s   e  Z e ˆ  d  e ƒZ RS(   R‘   (   R   R   RÔ   Rr   RÕ   (    (   RI   (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR   ˆ  s   RT   RÕ   s   Property l is required.iÙ  i   i   i   i8   i
   iÜÂ i   i    s   2009-04-13T22:56:10Zt   A2c           B   s   e  Z e ƒ  Z RS(    (   R   R   RÔ   RÕ   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyRÚ   ›  s   R‘   (   RI   R   R   R   Rv   R”   R   t   validateR   RÕ   RÑ   R1   t
   assertTrueR   (   R   R   R^   R!   Ra   RÚ   t   a2(    (   RI   sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testListPropertyNotEmpty†  s(    	$/'
	c            s`  d d k  l  ‰  d t f ‡  f d †  ƒ  Y} | ƒ  } | i i d ƒ |  i t | i ƒ d t f d „  ƒ  Y} | ƒ  } | i i d ƒ |  i | i ƒ  ƒ | i i ˆ  i	 ƒ  ƒ |  i t | i ƒ | ƒ  } d	 d
 g | _ |  i
 | i d	 d
 g j ƒ |  i
 | i d d	 d
 g j ƒ |  i
 | i i d	 ƒ d j ƒ | i i d	 ƒ |  i
 d	 | i j ƒ d  S(   Niÿÿÿÿ(   RI   R   c              s   e  Z e d  ˆ  ƒ Z RS(   t	   item_type(   R   R   RÔ   RÕ   (    (   RI   (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR   ¤  s   R   R®   c           B   s   e  Z e ƒ  Z RS(    (   R   R   t   StringListPropertyt   ls(    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR®   ª  s   u   testu   hellou   123Rá   i    (   RI   R   RÕ   RÑ   Rv   R”   RÛ   Rá   RÜ   t   utcnowR   R   t   indext   remove(   R   R   R^   R®   R_   R´   (    (   RI   sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testListPropertyWithType¢  s$    			 c         C   sï  d d k  l  } d t f d „  ƒ  Y} | i |  i ƒ | ƒ  } |  i | i h h  d 6d d 6j ƒ d | i d <|  i | i h h d d 6d 6d d 6j ƒ | d	 d
 d d d d ƒ | i d <|  i | i h h d d 6d d 6d 6d d 6j ƒ |  i t | i d | ƒ t j ƒ | i i	 h d d 6ƒ |  i | i d d j ƒ | i i	 h | d	 d
 d d d d ƒ d 6ƒ |  i | i d d d j ƒ |  i | i d | d	 d
 d d d d ƒ j ƒ |  i | i h d d 6d d 6| d	 d
 d d d d ƒ d 6| d	 d
 d d d d ƒ d 6j ƒ | ƒ  } h | d	 d d d d d d ƒ d 6| i d <|  i | i h h | d	 d d d d d ƒ d 6d 6j ƒ |  i | i h h h d d 6d 6d 6d d 6j ƒ d | i d d <|  i | i h h h d d 6d d 6d 6d 6d d 6j ƒ d | i d <|  i | i h d d 6h | d	 d d d d d ƒ d 6d d 6d 6j ƒ |  i | i h h d d 6h d d 6d d 6d 6d 6d d 6j ƒ | i d d =|  i | i h d d 6h d d 6d 6j ƒ |  i | i h h d d 6h d d 6d 6d 6d d 6j ƒ h | d	 d d d d d ƒ d 6| i d d <|  i | i h d d 6h d d 6h | d	 d d d d d ƒ d 6d 6d 6j ƒ |  i | i h h d d 6h d d 6h d d 6d 6d 6d 6d d 6j ƒ | i d d =|  i | i h h d d 6h d d 6d 6d 6d d 6j ƒ | ƒ  } d | i d <h  | i d <d | i d d <|  i | i h h h d d 6d 6d d 6d 6d d 6j ƒ | i
 ƒ  | i | i ƒ } d | i d d <|  i | i d d d j ƒ |  i | i d d d d j ƒ d  S(   Niÿÿÿÿ(   RI   R   c           B   s   e  Z e ƒ  Z RS(    (   R   R   t   DictPropertyRa   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR   ¾  s   Ra   RT   R   R€   iÙ  i   i   i   i)   RÇ   s   2009-04-16T16:05:41ZRÅ   t   d2i
   i   i   i”ñ R^   s   2009-05-10T21:19:21ZR&   R_   i   s   2009-05-10T21:21:11Zt   level1t   level2s   level2 edited(   RI   R   R=   R   R   R   Ra   RN   Rr   t   updateR   R6   R5   (   R   RI   R   R^   RÒ   (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testDictProperty¼  sd    	$+"2#,/\	,9292+9-
. 9	9
c         C   s“  d d k  l  } d t f d „  ƒ  Y} | i |  i ƒ | ƒ  } |  i | i h d d 6h  d 6j ƒ |  i t | i ƒ y | i ƒ  Wn t j
 o	 } n X|  i t	 | ƒ d j ƒ | d d	 d
 d d d d ƒ } | | i
 d <|  i | i
 d | d d	 d
 d d d ƒ j ƒ |  i | i h d d 6h d d 6d 6j ƒ | i ƒ  d t f d „  ƒ  Y} | ƒ  } |  i | i d t ƒ ƒ |  i | i ƒ  ƒ d  S(   Niÿÿÿÿ(   RI   R   c           B   s   e  Z e d  e ƒ Z RS(   R‘   (   R   R   Ræ   Rr   Ra   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR   þ  s   RT   Ra   s   Property d is required.iÙ  i   i   i   i8   i
   iÜÂ RJ   s   2009-04-13T22:56:10ZRÚ   c           B   s   e  Z e ƒ  Z RS(    (   R   R   Ræ   Ra   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyRÚ     s   R‘   (   RI   R   R=   R   R   R   Rv   R”   R   R   Ra   RÜ   RÛ   R   (   R   RI   R   R^   R!   Ra   RÚ   RÝ   (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testDictPropertyNotEmptyü  s(    	$/+
	c         C   s8  d d k  l  } d t f d „  ƒ  Y} | ƒ  } h  | _ h | d d d d d	 d d
 ƒ d 6| i d <|  i | i h h | d d d d d	 d d
 ƒ d 6d 6j ƒ |  i | i h h h d d 6d 6d 6d d 6j ƒ d | i d d <|  i | i h h h d d 6d d 6d 6d 6d d 6j ƒ d | i d <|  i | i h d d 6h | d d d d d	 d d
 ƒ d 6d d 6d 6j ƒ |  i | i h h d d 6h d d 6d d 6d 6d 6d d 6j ƒ | i d d =|  i | i h d d 6h d d 6d 6j ƒ |  i | i h h d d 6h d d 6d 6d 6d d 6j ƒ h | d d d d d d d ƒ d 6| i d d <|  i | i h d d 6h d d 6h | d d d d d d d ƒ d 6d 6d 6j ƒ |  i | i h h d d 6h d d 6h d d 6d 6d 6d 6d d 6j ƒ | i d d =|  i | i h h d d 6h d d 6d 6d 6d d 6j ƒ d  S(   Niÿÿÿÿ(   RI   R   c           B   s   e  Z RS(    (   R   R   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR     s   iÙ  i   i
   i   i   i”ñ R^   R   s   2009-05-10T21:19:21ZRa   RT   R&   R_   i   i6 s   2009-05-10T21:21:11Z(   RI   R   Ra   R   R   (   R   RI   R   R^   (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testDynamicDictProperty  s6    		,<29"2+90
1 c         C   sî  d d k  l  } d t f d „  ƒ  Y} | i |  i ƒ | ƒ  } d | _ h  | _ d | i d <h  | i d <d	 | i d d <|  i | i h h h d	 d 6d 6d d 6d 6d d
 6d d 6j ƒ | i ƒ  | i	 | i
 ƒ } d | i d d <|  i | i d d d j ƒ |  i | i d d d d j ƒ d t f d „  ƒ  Y} | i |  i ƒ | d d d d g ƒ } | i ƒ  |  i i	 | i
 d | i ƒ} |  i | i d d d g j ƒ g  | _ |  i | i g  j ƒ |  i | i ƒ  d g  j ƒ d  S(   Niÿÿÿÿ(   RI   R   c           B   s   e  Z RS(    (   R   R   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR   A  s   R   Rè   R€   Ra   Ré   RT   u   tests   level2 editedRÚ   c           B   s   e  Z RS(    (   R   R   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyRÚ   U  s   RÕ   R^   R_   R`   RÖ   (   RI   R   R=   R   R€   Ra   R   R   R   R6   R5   R×   RÕ   RØ   (   R   RI   R   R^   RÒ   RÚ   R_   (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testDynamicDictProperty2?  s0    			@
"
	c         C   sÒ  d d k  l  } d t f d „  ƒ  Y} | i |  i ƒ | ƒ  } g  | _ | i i d ƒ | i i | d d d d	 d
 d d ƒ ƒ | i i h d d 6ƒ |  i | i d | d d d d	 d
 d d ƒ h d d 6g j ƒ |  i | i h d d 6d d h d d 6g d 6j ƒ | d d d d	 d
 d d ƒ | i d d <|  i | i h d d 6d d h d d 6d d 6g d 6j ƒ | i ƒ  | i	 | i
 ƒ } |  i | i d | d d d d	 d
 d ƒ h | d d d d	 d
 d ƒ d 6d d 6g j ƒ d | i d d <|  i | i d | d d d d	 d
 d d ƒ h | d d d d	 d
 d d ƒ d 6d d 6g j ƒ |  i | i d d d h d d 6d d 6g j ƒ h d d 6d d 6h h d d 6d 6d 6} |  i i | ƒ | ƒ  } g  | _ | i i d  ƒ | i ƒ  | i d! ƒ } |  i t | ƒ d j ƒ | ƒ  } g  | _ | i ƒ  | i d! ƒ } |  i t | ƒ d" j ƒ | d d d g ƒ } |  i | i d d g j ƒ |  i | i d d d g j ƒ | ƒ  } d d g | _ |  i | i d d g j ƒ |  i | i d d d g j ƒ d# t f d$ „  ƒ  Y}	 |	 i |  i ƒ |	 d% h d d& 6d d' 6d" d( 6ƒ } | i ƒ  |  i i	 | i
 d) |	 i ƒ}
 |  i |
 i h d d& 6d d' 6d" d( 6j ƒ h  |
 _ |  i |
 i h  j ƒ |  i |
 i ƒ  d% h  j ƒ d  S(*   Niÿÿÿÿ(   RI   R   c           B   s   e  Z RS(    (   R   R   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR   b  s   i   iÙ  i   i   i   i#   i	   iå~ R   R€   RT   s   2009-05-12T13:35:09ZRÕ   i   RJ   u   dateu   testu   ss   test editeds   _design/testR5   Rd   Re   sA   function(doc) { if (doc.doc_type == "A") { emit(doc._id, doc);
}}Rf   Rg   Rh   i   s   test/alli   RÚ   c           B   s   e  Z RS(    (   R   R   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyRÚ   ¬  s   Ra   R^   R_   R`   RÖ   (   RI   R   R=   R   RÕ   RÑ   R   R   R   R6   R5   Ri   Rj   R1   R×   Ra   RØ   (   R   RI   R   R^   RÒ   Rl   RÝ   t   docst   a3RÚ   R_   (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   testDynamicListProperty`  s|    		(>4)
0"		
		
 	 $
+	(   R   R   R   R	   R•   R™   Rš   Rœ   Rž   R    R£   R¦   R­   Rµ   R¸   R¹   RÁ   RÃ   RÍ   RÎ   RÓ   RÙ   RÞ   Rå   Rë   Rì   Rí   Rî   Rñ   (    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyR   þ  s6   			
													
	2			*			@		(	!t   __main__(
   t
   __author__RI   RL   t   unittestt
   couchdbkitt   TestCaseR   R   R   t   main(    (    (    sF   /Users/benoitc/Work/couchdbkit_env/src/couchdbkit/tests/test_schema.pyt   <module>   s   
ÿ ñÿ ÿ »