U
    W+d3                     @   s  d dl Z d dlZd dlmZ d dlmZ d dlmZmZmZ d dlm	Z	m
Z
mZ d dlmZmZmZ d dlmZ e   e dZee j i aG d	d
 d
eZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZ G dd deZ!dd  Z"d!d" Z#d#d$ Z$d6d%d&Z%d'd( Z&d)d* Z'd+d, Z(d-d. Z)d/d0 Z*d1d2 Z+d3d4 Z,e-d5kre,  dS )7    N)datetime)Model)StringPropertyIntegerPropertyBooleanProperty)DateTimePropertyFloatPropertyReferenceProperty)PasswordPropertyListPropertyMapProperty)SDBPersistenceErrorZtest_dbc                   @   s$   e Zd Ze Ze Ze Ze	 Z
dS )	TestBasicN)__name__
__module____qualname__r   namer   sizer   foor   date r   r   7/tmp/pip-unpacked-wheel-dlxw5sjy/boto/sdb/db/test_db.pyr      s   r   c                   @   s   e Zd Ze Ze ZdS )	TestFloatN)r   r   r   r   r   r   valuer   r   r   r   r      s   r   c                   @   s   e Zd ZedddZdS )TestRequiredTr   )requireddefaultN)r   r   r   r   reqr   r   r   r   r   "   s   r   c                   @   s   e Zd ZeeddZdS )TestReferencerefs)Zreference_classZcollection_nameN)r   r   r   r	   r   refr   r   r   r   r   &   s   r   c                   @   s   e Zd Ze ZdS )TestSubClassN)r   r   r   r   Zanswerr   r   r   r   r!   *   s   r!   c                   @   s   e Zd Ze ZdS )TestPasswordN)r   r   r   r
   passwordr   r   r   r   r"   .   s   r"   c                   @   s   e Zd Ze ZeeZdS )TestListN)r   r   r   r   r   r   intnumsr   r   r   r   r$   1   s   r$   c                   @   s   e Zd Ze Ze ZdS )TestMapN)r   r   r   r   r   r   mapr   r   r   r   r'   6   s   r'   c                   @   s   e Zd Ze ZeeZdS )TestListReferenceN)r   r   r   r   r   r   r   basicsr   r   r   r   r)   ;   s   r)   c                   @   s    e Zd ZeddZeddZdS )TestAutoNowT)Zauto_now_add)Zauto_nowN)r   r   r   r   create_dateZmodified_dater   r   r   r   r+   @   s   
r+   c                   @   s   e Zd ZeddZdS )
TestUniqueT)uniqueN)r   r   r   r   r   r   r   r   r   r-   E   s   r-   c                  C   s   t  } d| _d| _d| _t | _td | 	  | t
d< td td t | j}|t
d< |j| jksttt | jg}t|d	kst|d
 j| jkst| j|jkst| j|jkst| j|jkst| S )NsimpleiTsaving objectZtest_basic_t   now try retrieving itZtest_basic_tt   r   )r   r   r   r   r   nowr   logdebugput_objectstimesleep	get_by_ididAssertionErrorlen)tttlr   r   r   
test_basicH   s(    



rB   c                  C   s   t  } d| _d| _td |   | td< td td t 	| j
}|td< |j
| j
ksdt|j| jkstt|j| jkst| S )Nzfloat objectgfffffX@r0   Ztest_float_tr1   r2   Ztest_float_tt)r   r   r   r5   r6   saver8   r9   r:   r;   r<   r=   r?   r@   r   r   r   
test_float`   s    


rE   c                  C   s   t  } | td< |   | S )NZtest_required_t)r   r8   r7   r?   r   r   r   test_requiredq   s    rG   c                 C   sh   | s
t  } t }| |_|  td t|j}|td< |jj| jksNt	| j
D ]}t| qTd S )N
   Ztest_reference_tt)rB   r   r    r7   r9   r:   r;   r<   r8   r=   r   r5   r6   )r?   r@   or   r   r   test_referencex   s    

rJ   c                  C   s&   t  } | td< d| _d| _|   d S )NZtest_subclass_tz
a subclassi)r!   r8   r   r   rC   rF   r   r   r   test_subclass   s
    rK   c                  C   s^   t  } | td< d| _|   td t | j}|td< |jdksHtt	|jdksZtd S )NZtest_password_tr   r1   Ztest_password_tt)
r"   r8   r#   rC   r9   r:   r;   r<   r=   strrD   r   r   r   test_password   s    
rM   c                  C   sn   t  } | td< d| _dddddg| _|   t | j}|td< |j| jksPt|jD ]}t|t	sVtqVd S )	NZtest_list_tza list of intsr3            r1   Ztest_list_tt)
r$   r8   r   r&   r7   r;   r<   r=   
isinstancer%   )r?   r@   nr   r   r   	test_list   s    
rS   c                  C   sj   t  } |   | td< t }d|_| g|_|  td |td< t|j	}|jd j	| j	ksft
d S )NZtest_list_ref_tr   r1   Ztest_list_ref_ttr   )r   r7   r8   r)   r   r*   r9   r:   r;   r<   r=   )r?   r@   Ztttr   r   r   test_list_reference   s    
rT   c                  C   s|   t  } dttt  }|| _|   | td< td t  }|td< ||_z|  ds`tW n t	k
rv   Y nX d S )Nr   Ztest_unique_trH   Ztest_unique_ttF)
r-   rL   r%   r9   r   r7   r8   r:   r=   r   )r?   r   r@   r   r   r   test_unique   s    
rU   c                  C   sH   t  } |   | td< td t | j}|j | j ksDt	d S )NZtest_datetime_tr1   )
r+   r7   r8   r9   r:   r;   r<   r,   	timetupler=   rD   r   r   r   test_datetime   s    
rW   c                  C   s   t d t } t d t  t d t|  t d t  t d t  t d t  t d t  t d t	  t d	 t
  d S )
NrB   rG   rJ   rK   rM   rS   rT   rW   rU   )r5   inforB   rG   rJ   rK   rM   rS   rT   rW   rU   )t1r   r   r   test   s$    








rZ   __main__)N).loggingr9   r   Zboto.sdb.db.modelr   Zboto.sdb.db.propertyr   r   r   r   r   r	   r
   r   r   Zboto.exceptionr   basicConfig	getLoggerr5   setLevelDEBUGr8   r   r   r   r   r!   r"   r$   r'   r)   r+   r-   rB   rE   rG   rJ   rK   rM   rS   rT   rU   rW   rZ   r   r   r   r   r   <module>   sF   

	
