a
    !f7                     @   s:   d dl Z dZdZdZG dd de jZG dd deZdS )	    NZPROJECTZKIND  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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 )&
TestEntityc                 C   s   ddl m} |S )Nr   )Entity)Zgcloud.datastore.entityr   )selfr    r   ]/var/www/html/python-backend/venv/lib/python3.9/site-packages/gcloud/datastore/test_entity.py_getTargetClass   s    zTestEntity._getTargetClassNr   c                 C   s   |   }|||dS Nkeyexclude_from_indexes)r   )r   r   r   klassr   r   r   _makeOne   s    zTestEntity._makeOnec                 C   s@   |   }| }| |jd  | |jd  | t|jg  d S N)r   assertEqualr   kindsortedr   )r   r   entityr   r   r   test_ctor_defaults    s
    zTestEntity.test_ctor_defaultsc                 C   s6   ddg}t  }| j||d}| t|jt| d S )Nfoobarr
   )_Keyr   r   r   r   )r   Z_EXCLUDE_FROM_INDEXESr   r   r   r   r   test_ctor_explicit'   s    zTestEntity.test_ctor_explicitc                 C   s$   t  }t }| jt| j||d d S r	   )objectr   assertRaises	TypeErrorr   )r   ZBAD_EXCLUDE_FROM_INDEXESr   r   r   r   "test_ctor_bad_exclude_from_indexes/   s
    z-TestEntity.test_ctor_bad_exclude_from_indexesc                 C   sJ   ddl m} |tttd}| j|d}| |t k | |t k d S )Nr   Keyprojectr   )	gcloud.datastore.keyr   _KIND_ID_PROJECTr   assertFalser   
assertTrue)r   r   r   r   r   r   r   test___eq_____ne___w_non_entity5   s
    z*TestEntity.test___eq_____ne___w_non_entityc                 C   sh   ddl m} d}d}|t|td}| j|d}|t|td}| j|d}| ||k | ||k d S )Nr   r   r   )	  r   r!   r"   r   r#   r%   r   r&   r'   )r   r   _ID1_ID2key1entity1key2entity2r   r   r   #test___eq_____ne___w_different_keys<   s    z.TestEntity.test___eq_____ne___w_different_keysc           	      C   s   ddl m} d}d}d}|tttd}| j||fd}|||< ||f|j|< |tttd}| j||fd}|||< ||f|j|< | ||k | ||k d S Nr   r   r   *   	   r   r
   )	r"   r   r#   r$   r%   r   	_meaningsr'   r&   )	r   r   namevaluemeaningr-   r.   r/   r0   r   r   r   test___eq_____ne___w_same_keysG   s    z)TestEntity.test___eq_____ne___w_same_keysc                 C   sp   ddl m} |tttd}| j|d}d|d< |tttd}| j|d}d|d< | ||k | ||k d S )	Nr   r   r   r!   Foor   Barr   )r"   r   r#   r$   r%   r   r&   r'   )r   r   r-   r.   r/   r0   r   r   r   .test___eq_____ne___w_same_keys_different_props[   s    z9TestEntity.test___eq_____ne___w_same_keys_different_propsc                 C   sp   ddl m} |tttd}|tttd}| j|d}||d< | j|d}||d< | ||k | ||k d S )Nr   r   r   r!   some_key)r"   r   r#   r$   r%   r   r'   r&   )r   r   r-   r/   r.   r0   r   r   r   :test___eq_____ne___w_same_keys_props_w_equiv_keys_as_valuef   s    zETestEntity.test___eq_____ne___w_same_keys_props_w_equiv_keys_as_valuec                 C   sx   ddl m} d}d}|t|td}|t|td}| j|d}||d< | j|d}||d< | ||k | ||k d S )Nr   r   r   r)   r   r!   r=   r*   )r   r   r+   r,   r-   r/   r.   r0   r   r   r   9test___eq_____ne___w_same_keys_props_w_diff_keys_as_valueq   s    zDTestEntity.test___eq_____ne___w_same_keys_props_w_diff_keys_as_valuec                 C   s   ddl m} |tttd}| j|d}|  }|ddi ||d< | j|d}|  }|ddi ||d< | ||k | ||k d S )Nr   r   r   r!   r   r:   some_entity)	r"   r   r#   r$   r%   r   updater'   r&   r   r   r   r.   Zsub1r0   Zsub2r   r   r   >test___eq_____ne___w_same_keys_props_w_equiv_entities_as_value~   s    zITestEntity.test___eq_____ne___w_same_keys_props_w_equiv_entities_as_valuec                 C   s   ddl m} |tttd}| j|d}|  }|ddi ||d< | j|d}|  }|ddi ||d< | ||k | ||k d S )	Nr   r   r   r!   r   r:   r@   r;   )	r"   r   r#   r$   r%   r   rA   r&   r'   rB   r   r   r   =test___eq_____ne___w_same_keys_props_w_diff_entities_as_value   s    zHTestEntity.test___eq_____ne___w_same_keys_props_w_diff_entities_as_valuec                 C   sb   ddl m} d}d}|tttd}| j||fd}|||< | j|dd}|||< | ||k d S )Nr   r   r   r3   r   r
   r   )r"   r   r#   r$   r%   r   r&   )r   r   r6   r7   r   r.   r0   r   r   r   &test__eq__same_value_different_exclude   s    z1TestEntity.test__eq__same_value_different_excludec                 C   sv   ddl m} d}d}d}|tttd}| j||fd}|||< | j||fd}|||< ||f|j|< | ||k d S r2   )r"   r   r#   r$   r%   r   r5   r&   )r   r   r6   r7   r8   r   r.   r0   r   r   r   'test__eq__same_value_different_meanings   s    z2TestEntity.test__eq__same_value_different_meaningsc                 C   s   |   }| t|d d S )Nz<Entity {}>)r   r   repr)r   r   r   r   r   test___repr___no_key_empty   s    z%TestEntity.test___repr___no_key_emptyc                 C   s4   t  }d|_| j|d}d|d< | t|d d S )Nz/bar/bazr!   r:   r   z<Entity/bar/baz {'foo': 'Foo'}>)r   _pathr   r   rG   )r   r   r   r   r   r   test___repr___w_key_non_empty   s
    z(TestEntity.test___repr___w_key_non_empty)Nr   )__name__
__module____qualname__r   r   r   r   r   r(   r1   r9   r<   r>   r?   rC   rD   rE   rF   rH   rJ   r   r   r   r   r      s"   
r   c                   @   s>   e Zd Ze ZdZdZdZdZdZ	e
fddZedd ZdS )r   ZKEYFNc                 C   s
   || _ d S r   r   )r   r    r   r   r   __init__   s    z_Key.__init__c                 C   s   | j S r   )rI   )r   r   r   r   path   s    z	_Key.path)rK   rL   rM   r   Z_MARKER_key_partialrI   Z_idZ_storedr%   rN   propertyrO   r   r   r   r   r      s   r   )Z	unittest2r%   r#   r$   ZTestCaser   r   r   r   r   r   r   <module>   s    1