a
    !fz                     @   s   d dl Z G dd de jZG dd de jZG dd de jZG dd	 d	e jZG d
d de jZG dd de jZG dd de jZG dd de jZ	G dd de jZ
G dd de jZdS )    Nc                   @   s   e Zd Zdd Zdd ZdS )Test__new_value_pbc                 C   s   ddl m} |||S )Nr   _new_value_pb)gcloud.datastore.helpersr   )self	entity_pbnamer    r	   ^/var/www/html/python-backend/venv/lib/python3.9/site-packages/gcloud/datastore/test_helpers.py_callFUT   s    zTest__new_value_pb._callFUTc                 C   s^   ddl m} | }d}| ||}| t||j | t|j	d | |j	| | d S )Nr   
entity_pb2foo   )
gcloud.datastore._generatedr   Entityr   
assertTrue
isinstanceValueassertEquallen
properties)r   r   r   r   resultr	   r	   r
   test_it   s    zTest__new_value_pb.test_itN__name__
__module____qualname__r   r   r	   r	   r	   r
   r      s   r   c                   @   s   e Zd Zdd Zdd ZdS )Test__property_tuplesc                 C   s   ddl m} ||S )Nr   _property_tuples)r   r    )r   r   r    r	   r	   r
   r   &   s    zTest__property_tuples._callFUTc           
      C   s   dd l }ddlm} ddlm} | }d}d}|||}|||}| |}	| t|	|j	 | 
t|	t||f||fg d S )Nr   r   r   r   bar)typesr   r   r   r   r   r   r   r   GeneratorTyper   sorted)
r   r"   r   r   r   name1name2val_pb1val_pb2r   r	   r	   r
   r   *   s    



zTest__property_tuples.test_itNr   r	   r	   r	   r
   r   $   s   r   c                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )Test_entity_from_protobufc                 C   s   ddl m} ||S )Nr   entity_from_protobuf)r   r+   )r   valr+   r	   r	   r
   r   =   s    z"Test_entity_from_protobuf._callFUTc                 C   sF  ddl m} ddlm} d}d}d}| }||jj_|jjj	||d ||d}d	|_
||d
}d|_d|_||d}	|	jj}
|
	 }d|_d|_||d}|jj}|	 }d|_| |}| |j| | |jtd
dg t|}| |d	ddgdgd |j}| |j| | |jd  | |j| | |j| d S )Nr   r   r   PROJECTKIND  kindidr   Foor!   
   Tbaz   qux   )r   r!   r5   r7   )r   r   r   r   r   keypartition_id
project_idpathaddstring_valueinteger_valueexclude_from_indexesarray_valuevaluesr   r   r1   	frozensetdictproject	namespacer2   )r   r   r   _PROJECT_KIND_IDr   value_pbZunindexed_val_pbZarray_val_pb1Z	array_pb1Zunindexed_array_val_pbZarray_val_pb2Z	array_pb2Zindexed_array_val_pbentityZentity_propsr9   r	   r	   r
   r   A   sH    






z!Test_entity_from_protobuf.test_itc                 C   s   ddl m} ddlm} d}d}d}| }||jj_|jjj	||d ||d}|j
j}|	 }	d	|	_d
|	_|	 }
d|
_| t | | W d    n1 s0    Y  d S )Nr   r   r   r-   r.   r/   r0   r5   r4   Tr6   )r   r   r   r   r   r9   r:   r;   r<   r=   rA   rB   r?   r@   assertRaises
ValueErrorr   )r   r   r   rG   rH   rI   r   Zarray_val_pbarray_pbZunindexed_value_pb1Zunindexed_value_pb2r	   r	   r
   test_mismatched_value_indexedo   s"    

z7Test_entity_from_protobuf.test_mismatched_value_indexedc                 C   s@   ddl m} | }| |}| |jd  | t|i  d S Nr   r   )r   r   r   r   r   r9   rD   )r   r   r   rK   r	   r	   r
   test_entity_no_key   s
    
z,Test_entity_from_protobuf.test_entity_no_keyc           	      C   s   ddl m} ddlm} | }d}|||}d |_}d |_}| |}| |j	d  | t
|||i | |j|||fi d S )Nr   r   r   hello	   Z	something)r   r   r   r   r   meaningr>   r   r   r9   rD   	_meanings)	r   r   r   r   r   rJ   rT   r,   rK   r	   r	   r
   test_entity_with_meaning   s    



z2Test_entity_from_protobuf.test_entity_with_meaningc                 C   s   ddl m} ddlm} d}d}d}d}d}| }|||}	||	_| }
||
jj_|
jj	
 }||_||
|}|j| | |
}| |jj| | |jj|f | t|d	 || }| |jd  | t|d	 | || | d S )
Nr   r   r   ZFOOr.   ZIFOOZOBAR9  r   )r   r   r   r   r   r?   r9   r:   r;   r<   r=   r1   entity_valueCopyFromr   r   rE   Z	flat_pathr   )r   r   r   r-   r.   ZINSIDE_NAMEZOUTSIDE_NAMEZINSIDE_VALUEZentity_insideZinside_val_pbr   elementZoutside_val_pbrK   Zinside_entityr	   r	   r
   test_nested_entity_no_key   s0    



z3Test_entity_from_protobuf.test_nested_entity_no_keyN)	r   r   r   r   r   rO   rQ   rV   r[   r	   r	   r	   r
   r)   ;   s   .	r)   c                   @   sT   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd ZdS )Test_entity_to_protobufc                 C   s   ddl m} ||S )Nr   )entity_to_protobuf)r   r]   )r   rK   r]   r	   r	   r
   r      s    z Test_entity_to_protobuf._callFUTc                 C   s   ddl m} | |j|j t||}t||}| t|t| t||D ]\\}}|\}}	|\}
}| ||
 |	dr| |	j|j | 	|	j
|j
 qR| |	| qRd S )Nr   r   rX   )r   r    r   r9   r$   r   zipZHasFieldrT   _compareEntityProtorX   )r   Z
entity_pb1r   r    Zvalue_list1Zvalue_list2Zpair1Zpair2r%   Zval1r&   Zval2r	   r	   r
   r_      s    
z+Test_entity_to_protobuf._compareEntityProtoc                 C   s<   ddl m} ddlm} | }| |}| ||  d S )Nr   r   r   r   r   gcloud.datastore.entityr   r   r_   r   r   r   rK   r   r	   r	   r
   
test_empty   s
    
z"Test_entity_to_protobuf.test_emptyc                 C   s   ddl m} ddlm} ddlm} d\}}d}||||d}||d}| |}	| }
||
jj_	|
jj
 }||_||_| |	|
 d S )	Nr   r   r`   Key)PATHNAMEr-   rE   r9   )r   r   rb   r   gcloud.datastore.keyrf   r   r9   r:   r;   r<   r=   r1   r   r_   )r   r   r   rf   r1   r   rE   r9   rK   r   expected_pbZpath_eltr	   r	   r
   test_key_only   s    


z%Test_entity_to_protobuf.test_key_onlyc                 C   s   ddl m} ddlm} ddlm} | }d}d ||< }d}d ||< }| |}	| }
||
|}||_||
|}||_| 	|	|
 d S )	Nr   r   r`   r   r   *   r!   zsome-string)
r   r   rb   r   r   r   r   r?   r>   r_   )r   r   r   r   rK   r%   value1r&   value2r   rl   r'   r(   r	   r	   r
   test_simple_fields   s    


z*Test_entity_to_protobuf.test_simple_fieldsc                 C   sD   ddl m} ddlm} | }g |d< | |}| ||  d S )Nr   r   r`   r   ra   rc   r	   r	   r
   test_with_empty_list  s    
z,Test_entity_to_protobuf.test_with_empty_listc                 C   sJ  ddl m} ddlm} ddlm} | }d |jj_}|jj	
 }d|_d|_|jj	
 }d|_d	|_||d
}d|_d|_||d}	d|	_||d}
| }||d}d|_||d}d|_d|
_|
j| ||d}|jj
 }d|_d |_}d|_|jj
 }d|_||_d|_||}| |}||jj_| || d S )Nr   r   r   r*   r-   ZFamilyr/   ZKingZSpadesr   rW   Tr!   rR   z
entity-bazxQ	@yg
@rS   z	list-quuxF   s   ☃s   ★)r   r   r   r   r+   r   r9   r:   r;   r<   r=   r1   r2   r   r?   r@   r>   double_valuerT   rX   rY   rA   rB   
blob_valuer   r_   )r   r   r   r+   Zoriginal_pbrE   Zelem1Zelem2r'   r(   Zval_pb3Zsub_pbZsub_val_pb1Zsub_val_pb2Zval_pb4Z
array_val1rT   Z
array_val2rK   Znew_pbr	   r	   r
   test_inverts_to_protobuf  sJ    








z0Test_entity_to_protobuf.test_inverts_to_protobufc           
      C   sv   ddl m} ddlm} ddlm} | }d}d ||< }d|j|< | |}| }|||}	||	_| 	|| d S )Nr   r   r`   r   r   rn   )rS   rW   )
r   r   rb   r   r   r   rU   r   r?   r_   )
r   r   r   r   rK   r   valuer   rl   rJ   r	   r	   r
   test_meaning_with_changeF  s    


z0Test_entity_to_protobuf.test_meaning_with_changec                 C   s   ddl m} ddlm} ddlm} | }d}g d ||< }d}d |d g|f|j|< | |}| }	||	|}
|
jj	
 }|d |_|
jj	
 }|d |_||_|
jj	
 }|d	 |_| ||	 d S )
Nr   r   r`   r   Zquux)r      i,  rS   r      )r   r   rb   r   r   r   rU   r   rA   rB   r=   r?   rT   r_   )r   r   r   r   rK   r   rB   rT   r   rl   rJ   Zvalue0ro   rp   r	   r	   r
   test_variable_meaningsX  s&    




z.Test_entity_to_protobuf.test_variable_meaningsN)r   r   r   r   r_   rd   rm   rq   rr   ry   r{   r~   r	   r	   r	   r
   r\      s   
5r\   c                   @   s>   e Zd Zdd ZdddZdd Zd	d
 Zdd Zdd ZdS )Test_key_from_protobufc                 C   s   ddl m} ||S )Nr   )key_from_protobuf)r   r   )r   r,   r   r	   r	   r
   r   u  s    zTest_key_from_protobuf._callFUTNr	   c                 C   sz   ddl m} | }|d ur$||j_|d ur4||j_|D ]<}|j }|d |_d|v rb|d |_	d|v r8|d |_
q8|S )Nr   r   r1   r2   r   )r   r   rf   r:   r;   Znamespace_idr<   r=   r1   r2   r   )r   rE   rF   r<   r   pbelemaddedr	   r	   r
   _makePBz  s    


zTest_key_from_protobuf._makePBc                 C   sB   d}| j ddig|d}| |}| |j| | |jd  d S )Nr-   r1   r.   r<   rE   r   r   r   rE   rF   )r   rG   r   r9   r	   r	   r
   test_wo_namespace_in_pb  s
    
z.Test_key_from_protobuf.test_wo_namespace_in_pbc                 C   sH   d}d}| j ddig||d}| |}| |j| | |j| d S )Nr-   Z	NAMESPACEr1   r.   )r<   rF   rE   r   )r   rG   Z
_NAMESPACEr   r9   r	   r	   r
   test_w_namespace_in_pb  s    
z-Test_key_from_protobuf.test_w_namespace_in_pbc                 C   sF   dddddddddg}| j |d	d
}| |}| |j| d S )NZPARENTrh   )r1   r   ZCHILDr/   r0   Z
GRANDCHILDi.  r-   r   )r   r   r   r<   )r   Z_PATHr   r9   r	   r	   r
   test_w_nested_path_in_pb  s    
z/Test_key_from_protobuf.test_w_nested_path_in_pbc                 C   s   |   }| t| j| d S N)r   rL   rM   r   r   r   r	   r	   r
   test_w_nothing_in_pb  s    z+Test_key_from_protobuf.test_w_nothing_in_pb)NNr	   )	r   r   r   r   r   r   r   r   r   r	   r	   r	   r
   r   s  s   
	
r   c                   @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!S )"Test__pb_attr_valuec                 C   s   ddl m} ||S )Nr   )_pb_attr_value)r   r   )r   r,   r   r	   r	   r
   r     s    zTest__pb_attr_value._callFUTc           	   
   C   s   dd l }dd l}ddlm} d}|dddddd	|}|dddddd	||}| |\}}| |d
 | |j||  | |j	d|  d S Nr   UTC    rS      r4          timestamp_value  
calendardatetimegcloud._helpersr   r   r   secondstimegm	timetuplenanos)	r   r   r   r   microsZnaiveutcr   rz   r	   r	   r
   test_datetime_naive  s    z'Test__pb_attr_value.test_datetime_naivec              
   C   s   dd l }dd l}ddlm} d}|dddddd	||}| |\}}| |d
 | |j||  | |j	d|  d S r   r   )r   r   r   r   r   r   r   rz   r	   r	   r
   test_datetime_w_zone  s    z(Test__pb_attr_value.test_datetime_w_zonec                 C   sH   ddl m} |dddd}| |\}}| |d | ||  d S )Nr   re   rg   r/   r-   ri   	key_value)rk   rf   r   r   to_protobuf)r   rf   r9   r   rz   r	   r	   r
   test_key  s
    zTest__pb_attr_value.test_keyc                 C   s*   |  d\}}| |d | |d d S )NFboolean_valuer   r   r   r   rz   r	   r	   r
   	test_bool  s    zTest__pb_attr_value.test_boolc                 C   s*   |  d\}}| |d | |d d S )NJM!	@rw   r   r   r	   r	   r
   
test_float  s    zTest__pb_attr_value.test_floatc                 C   s*   |  d\}}| |d | |d d S )Nrn   r?   r   r   r	   r	   r
   test_int  s    zTest__pb_attr_value.test_intc                 C   s.   d}|  |\}}| |d | || d S )N    r?   r   )r   must_be_longr   rz   r	   r	   r
   	test_long  s    zTest__pb_attr_value.test_longc                 C   sF   dd l }| d\}}|jr*| |d n| |d | |d d S )Nr   strrx   r>   )sixr   PY2r   )r   r   r   rz   r	   r	   r
   test_native_str  s    z#Test__pb_attr_value.test_native_strc                 C   s*   |  d\}}| |d | |d d S )Ns   bytesrx   r   r   r	   r	   r
   
test_bytes  s    zTest__pb_attr_value.test_bytesc                 C   s*   |  d\}}| |d | |d d S )Nr   r>   r   r   r	   r	   r
   test_unicode  s    z Test__pb_attr_value.test_unicodec                 C   s>   ddl m} | }| |\}}| |d | ||u  d S )Nr   r`   rX   )rb   r   r   r   r   )r   r   rK   r   rz   r	   r	   r
   test_entity  s
    zTest__pb_attr_value.test_entityc                 C   s4   g d}|  |\}}| |d | ||u  d S )Nar   rt   rA   )r   r   r   )r   rB   r   rz   r	   r	   r
   
test_array   s    zTest__pb_attr_value.test_arrayc           	      C   sd   ddl m} ddlm} d}d}|||d}|j||d}| |\}}| |d | || d S )Nr   
latlng_pb2GeoPointg(\5E@gFxX@latitude	longitudegeo_point_value)google.typer   r   r   LatLngr   r   )	r   r   r   latlnggeo_pt	geo_pt_pbr   rz   r	   r	   r
   test_geo_point  s    z"Test__pb_attr_value.test_geo_pointc                 C   s8   ddl m} | d \}}| |d | ||j d S )Nr   
struct_pb2
null_value)google.protobufr   r   r   
NULL_VALUE)r   r   r   rz   r	   r	   r
   	test_null  s    zTest__pb_attr_value.test_nullc                 C   s   |  t| jt  d S r   )rL   rM   r   object)r   r	   r	   r
   test_object  s    zTest__pb_attr_value.test_objectN)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r	   r	   r
   r     s    	r   c                   @   s|   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd ZdS )Test__get_value_from_value_pbc                 C   s   ddl m} ||S )Nr   )_get_value_from_value_pb)r   r   )r   r   r   r	   r	   r
   r     s    z&Test__get_value_from_value_pb._callFUTc                 C   s$   ddl m} | }t||| |S rP   )r   r   r   setattr)r   	attr_namerz   r   r   r	   r	   r
   r   $  s    z%Test__get_value_from_value_pb._makePBc              
   C   s   dd l }dd l}ddlm} ddlm} d}|ddddd	d
||}| }|| |j	_
d| |j	_| | || d S )Nr   r   r   r   r   rS   r   r4   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
   test_datetime+  s    z+Test__get_value_from_value_pb.test_datetimec                 C   s\   ddl m} ddlm} | }|dddd }|j| | |}| 	| | d S )Nr   r   re   r.   r/   r-   ri   )
r   r   rk   rf   r   r   r   rY   r   r   )r   r   rf   r   expectedfoundr	   r	   r
   r   8  s    
z&Test__get_value_from_value_pb.test_keyc                 C   s"   |  dd}| | |d d S )Nr   Fr   r   r   r   r	   r	   r
   r   B  s    z'Test__get_value_from_value_pb.test_boolc                 C   s"   |  dd}| | |d d S )Nrw   r   r   r   r	   r	   r
   r   F  s    z(Test__get_value_from_value_pb.test_floatc                 C   s"   |  dd}| | |d d S )Nr?   rn   r   r   r	   r	   r
   r   J  s    z&Test__get_value_from_value_pb.test_intc                 C   s"   |  dd}| | |d d S )Nrx      strr   r   r	   r	   r
   r   N  s    z(Test__get_value_from_value_pb.test_bytesc                 C   s"   |  dd}| | |d d S )Nr>   r   r   r   r	   r	   r
   r   R  s    z*Test__get_value_from_value_pb.test_unicodec                 C   s   ddl m} ddlm} ddlm} | }|j}|jj	j
dd d|jj_||d}d	|_| |}| t|| | |d d	 d S )
Nr   r   r`   r   r.   )r1   r-   r   r3   )r   r   rb   r   r   r   r   rX   r9   r<   r=   r:   r;   r>   r   r   r   r   )r   r   r   r   r   r   rJ   rK   r	   r	   r
   r   V  s    


z)Test__get_value_from_value_pb.test_entityc                 C   sV   ddl m} | }|jj}| }d|_| }d|_| |}| |ddg d S )Nr   r   r3   ZBar)	r   r   r   rA   rB   r=   r>   r   r   )r   r   r   rN   Zitem_pbitemsr	   r	   r
   r   f  s    
z(Test__get_value_from_value_pb.test_arrayc           	      C   s|   ddl m} ddlm} ddlm} d}d}|j||d}|j|d}| |}| 	|| | 
|j| | 
|j| d S )	Nr   r   r   r   gQ	g=
ףp*@r   )r   )r   r   r   r   r   r   r   r   r   ZassertIsInstancer   r   r   )	r   r   r   r   r   r   r   r   r   r	   r	   r
   r   r  s    
z,Test__get_value_from_value_pb.test_geo_pointc                 C   s>   ddl m} ddlm} |j|jd}| |}| | d S )Nr   r   r   )r   )r   r   r   r   r   r   r   ZassertIsNone)r   r   r   r   r   r	   r	   r
   r     s
    
z'Test__get_value_from_value_pb.test_nullc                 C   sL   ddl m} | }| t | | W d    n1 s>0    Y  d S rP   )r   r   r   rL   rM   r   )r   r   r   r	   r	   r
   test_unknown  s    z*Test__get_value_from_value_pb.test_unknownN)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r	   r	   r
   r     s   
r   c                   @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!S )"Test_set_protobuf_valuec                 C   s   ddl m} |||S )Nr   )_set_protobuf_value)r   r   )r   rJ   r,   r   r	   r	   r
   r     s    z Test_set_protobuf_value._callFUTc                 C   s   ddl m} | S rP   )r   r   r   )r   r   r	   r	   r
   r     s    zTest_set_protobuf_value._makePBc              
   C   s   dd l }dd l}ddlm} |  }d}|dddddd	||}| || |j}| |j|	|
  | |jd
|  d S )Nr   r   r   r   rS   r   r4   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   rz   r	   r	   r
   r     s    z%Test_set_protobuf_value.test_datetimec                 C   sH   ddl m} |  }|dddd}| || |j}| ||  d S )Nr   re   r.   r/   r-   ri   )rk   rf   r   r   r   r   r   )r   rf   r   r9   rz   r	   r	   r
   r     s    z Test_set_protobuf_value.test_keyc                 C   s*   |   }| |d  | |dd d S )NZ
value_typer   )r   r   r   Z
WhichOneofr   r	   r	   r
   	test_none  s    z!Test_set_protobuf_value.test_nonec                 C   s*   |   }| |d |j}| |d d S )NF)r   r   r   r   r   r   rz   r	   r	   r
   r     s    z!Test_set_protobuf_value.test_boolc                 C   s*   |   }| |d |j}| |d d S )Nr   )r   r   rw   r   r   r	   r	   r
   r     s    z"Test_set_protobuf_value.test_floatc                 C   s*   |   }| |d |j}| |d d S )Nrn   r   r   r?   r   r   r	   r	   r
   r     s    z Test_set_protobuf_value.test_intc                 C   s.   |   }d}| || |j}| || d S )Nr   r   )r   r   r   rz   r	   r	   r
   r     s
    z!Test_set_protobuf_value.test_longc                 C   s@   dd l }|  }| |d |jr*|j}n|j}| |d d S )Nr   r   )r   r   r   r   rx   r>   r   )r   r   r   rz   r	   r	   r
   r     s    z'Test_set_protobuf_value.test_native_strc                 C   s*   |   }| |d |j}| |d d S )Nr   )r   r   rx   r   r   r	   r	   r
   r     s    z"Test_set_protobuf_value.test_bytesc                 C   s*   |   }| |d |j}| |d d S )Nr   )r   r   r>   r   r   r	   r	   r
   r     s    z$Test_set_protobuf_value.test_unicodec                 C   sf   ddl m} ddlm} |  }| }| || |j}| |j	 d | t
t||d d S )Nr   r`   r       )rb   r   r   r    r   r   rX   r   r9   ZSerializeToStringr   list)r   r   r    r   rK   rz   r	   r	   r
   test_entity_empty_wo_key  s    z0Test_set_protobuf_value.test_entity_empty_wo_keyc                 C   s   ddl m} ddlm} ddlm} d}d}|  }|ddd	d
}||d}|||< | || |j}	| 	|	j
|  t||	}
| 	t|
d | 	t|
 |g | 	|
| j| d S )Nr   r`   r   re   r   r3   r.   {   r-   ri   rj   r   )rb   r   r   r    rk   rf   r   r   rX   r   r9   r   rD   r   r   keysr>   )r   r   r    rf   r   rz   r   r9   rK   r   Z	prop_dictr	   r	   r
   test_entity_w_key  s     
z)Test_set_protobuf_value.test_entity_w_keyc                 C   s~   |   }g d}| || |jj}| t|t| | |d j|d  | |d j|d  | |d j|d  d S )Nr   r   r   r}   )	r   r   rA   rB   r   r   r>   r?   rw   )r   r   rB   Z
marshalledr	   r	   r
   r     s    z"Test_set_protobuf_value.test_arrayc                 C   s`   ddl m} ddlm} |  }d}d}|||d}|j||d}| || | |j| d S )Nr   r   r   gQ8"@gV-
@r   )	r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r	   r	   r
   r     s    z&Test_set_protobuf_value.test_geo_pointN)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r	   r	   r
   r     s    	

r   c                   @   sD   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dS )Test__get_meaningc                 O   s   ddl m} ||i |S )Nr   )_get_meaning)r   r   )r   argskwargsr   r	   r	   r
   r     s    zTest__get_meaning._callFUTc                 C   s.   ddl m} | }| |}| |d  d S rP   )r   r   r   r   r   r   r   rJ   r   r	   r	   r
   test_no_meaning!  s    
z!Test__get_meaning.test_no_meaningc                 C   s>   ddl m} | }d |_}d|_| |}| || d S )Nr   r   rv   hi)r   r   r   rT   r>   r   r   )r   r   rJ   rT   r   r	   r	   r
   test_single(  s    

zTest__get_meaning.test_singlec                 C   sJ   ddl m} | }|jj  |jj  | j|dd}| d | d S )Nr   r   TZis_list)	r   r   r   rA   rB   r=   popr   r   r   r	   r	   r
   test_empty_array_value1  s    z(Test__get_meaning.test_empty_array_valuec                 C   sf   ddl m} | }d}|jj }|jj }| |_|_d|_d|_| j|dd}| 	|| d S Nr   r   rS   r   byeTr   
r   r   r   rA   rB   r=   rT   r>   r   r   )r   r   rJ   rT   sub_value_pb1sub_value_pb2r   r	   r	   r
   test_array_value;  s    z"Test__get_meaning.test_array_valuec                 C   sn   ddl m} | }d}d}|jj }|jj }||_||_d|_d|_| j|dd}| 	|||g d S )	Nr   r   rS   r4   r   r   Tr   r   )r   r   rJ   meaning1Zmeaning2r   r   r   r	   r	   r
   "test_array_value_multiple_meaningsJ  s    z4Test__get_meaning.test_array_value_multiple_meaningsc                 C   sd   ddl m} | }d}|jj }|jj }||_d|_d|_| j|dd}| 	||d g d S r   r   )r   r   rJ   r   r   r   r   r	   r	   r
   (test_array_value_meaning_partially_unset[  s    z:Test__get_meaning.test_array_value_meaning_partially_unsetN)
r   r   r   r   r   r   r   r   r   r   r	   r	   r	   r
   r     s   	
r   c                   @   sL   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dS )TestGeoPointc                 C   s   ddl m} |S )Nr   r   )r   r   )r   r   r	   r	   r
   _getTargetClassm  s    zTestGeoPoint._getTargetClassc                 O   s   |   |i |S r   )r   )r   r   r   r	   r	   r
   _makeOneq  s    zTestGeoPoint._makeOnec                 C   s4   d}d}|  ||}| |j| | |j| d S )NgLT@gTt$v@)r   r   r   r   )r   r   r   r   r	   r	   r
   test_constructort  s
    zTestGeoPoint.test_constructorc                 C   sF   ddl m} d}d}| ||}| }|j||d}| || d S )Nr   r   -C6?Hz4@r   )r   r   r   r   r   r   )r   r   r   r   r   r   r   r	   r	   r
   test_to_protobuf{  s    zTestGeoPoint.test_to_protobufc                 C   s0   d}d}|  ||}|  ||}| || d S Nr  r  )r   r   r   r   r   geo_pt1geo_pt2r	   r	   r
   test___eq__  s
    zTestGeoPoint.test___eq__c                 C   s*   d}d}|  ||}t }| || d S r  )r   r   assertNotEqualr  r	   r	   r
   test___eq__type_differ  s
    z#TestGeoPoint.test___eq__type_differc                 C   s6   d}d}|  ||}|  ||}||k}| | d S r  )r   ZassertFalse)r   r   r   r  r  Zcomparison_valr	   r	   r
   test___ne__same_value  s    z"TestGeoPoint.test___ne__same_valuec                 C   s(   |  dd}|  dd}| || d S )Ng        g      ?g       @g      @)r   r	  )r   r  r  r	   r	   r
   test___ne__  s    zTestGeoPoint.test___ne__N)r   r   r   r   r   r   r  r  r
  r  r  r	   r	   r	   r
   r   k  s   
r   )Z	unittest2ZTestCaser   r   r)   r\   r   r   r   r   r   r   r	   r	   r	   r
   <module>   s     46ts P