a
    ù!fÒg  ã                   @   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ƒZG dd„ deƒZ	G dd„ deƒZ
G dd„ deƒZdS )é    Nc                   @   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_ACLEntityc                 C   s   ddl m} |S )Nr   ©Ú
_ACLEntity)Úgcloud.storage.aclr   )Úselfr   © r   úX/var/www/html/python-backend/venv/lib/python3.9/site-packages/gcloud/storage/test_acl.pyÚ_getTargetClass   s    zTest_ACLEntity._getTargetClassc                 O   s   |   ¡ |i |¤ŽS ©N©r	   ©r   ÚargsÚkwr   r   r   Ú_makeOne   s    zTest_ACLEntity._makeOnec                 C   s@   d}|   |¡}|  |j|¡ |  |jd ¡ |  | ¡ tƒ ¡ d S ©NÚtype©r   ÚassertEqualr   Ú
identifierÚ	get_rolesÚset©r   ÚTYPEÚentityr   r   r   Útest_ctor_default_identifier   s
    
z+Test_ACLEntity.test_ctor_default_identifierc                 C   sF   d}d}|   ||¡}|  |j|¡ |  |j|¡ |  | ¡ tƒ ¡ d S )Nr   Úidr   ©r   r   ÚIDr   r   r   r   Útest_ctor_w_identifier"   s    z%Test_ACLEntity.test_ctor_w_identifierc                 C   s"   d}|   |¡}|  t|ƒ|¡ d S r   ©r   r   Ústrr   r   r   r   Útest___str__no_identifier*   s    
z(Test_ACLEntity.test___str__no_identifierc                 C   s0   d}d}|   ||¡}|  t|ƒd||f ¡ d S )Nr   r   ú%s-%sr   r   r   r   r   Útest___str__w_identifier/   s    z'Test_ACLEntity.test___str__w_identifierc                 C   s6   d}d}|   |¡}| |¡ |  | ¡ t|gƒ¡ d S )Nr   Úrole©r   Úgrantr   r   r   ©r   r   ÚROLEr   r   r   r   Útest_grant_simple5   s
    

z Test_ACLEntity.test_grant_simplec                 C   sP   d}d}d}|   |¡}| |¡ | |¡ | |¡ |  | ¡ t||gƒ¡ d S ©Nr   Úrole1Úrole2r%   ©r   r   ÚROLE1ÚROLE2r   r   r   r   Útest_grant_duplicate<   s    



z#Test_ACLEntity.test_grant_duplicatec                 C   s2   d}d}|   |¡}| |¡ |  | ¡ tƒ ¡ d S )Nr   Únonesuch)r   Úrevoker   r   r   r'   r   r   r   Útest_revoke_missF   s
    

zTest_ACLEntity.test_revoke_missc                 C   sN   d}d}d}|   |¡}| |¡ | |¡ | |¡ |  | ¡ t|gƒ¡ d S r*   )r   r&   r2   r   r   r   r-   r   r   r   Útest_revoke_hitM   s    



zTest_ACLEntity.test_revoke_hitc                 C   s2   d}|   |¡}| ¡  |  | ¡ t|jgƒ¡ d S r   )r   Z
grant_readr   r   r   ÚREADER_ROLEr   r   r   r   Útest_grant_readW   s    
zTest_ACLEntity.test_grant_readc                 C   s2   d}|   |¡}| ¡  |  | ¡ t|jgƒ¡ d S r   )r   Zgrant_writer   r   r   ÚWRITER_ROLEr   r   r   r   Útest_grant_write]   s    
zTest_ACLEntity.test_grant_writec                 C   s2   d}|   |¡}| ¡  |  | ¡ t|jgƒ¡ d S r   )r   Zgrant_ownerr   r   r   Ú
OWNER_ROLEr   r   r   r   Útest_grant_ownerc   s    
zTest_ACLEntity.test_grant_ownerc                 C   s8   d}|   |¡}| |j¡ | ¡  |  | ¡ tƒ ¡ d S r   )r   r&   r5   Zrevoke_readr   r   r   r   r   r   r   Útest_revoke_readi   s
    
zTest_ACLEntity.test_revoke_readc                 C   s8   d}|   |¡}| |j¡ | ¡  |  | ¡ tƒ ¡ d S r   )r   r&   r7   Zrevoke_writer   r   r   r   r   r   r   Útest_revoke_writep   s
    
z Test_ACLEntity.test_revoke_writec                 C   s8   d}|   |¡}| |j¡ | ¡  |  | ¡ tƒ ¡ d S r   )r   r&   r9   Zrevoke_ownerr   r   r   r   r   r   r   Útest_revoke_ownerw   s
    
z Test_ACLEntity.test_revoke_ownerN)Ú__name__Ú
__module__Ú__qualname__r	   r   r   r   r!   r#   r)   r0   r3   r4   r6   r8   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!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Zd;d<„ Z d=d>„ Z!d?d@„ Z"dAdB„ Z#dCdD„ Z$dEdF„ Z%dGdH„ Z&dIdJ„ Z'dKdL„ Z(dMdN„ Z)dOdP„ Z*dQdR„ Z+dSdT„ Z,dUdV„ Z-dWdX„ Z.dYdZ„ Z/d[d\„ Z0d]d^„ Z1d_d`„ Z2dadb„ Z3dcdd„ Z4dedf„ Z5dgdh„ Z6diS )jÚTest_ACLc                 C   s   ddl m} |S )Nr   )ÚACL)r   rB   )r   rB   r   r   r   r	      s    zTest_ACL._getTargetClassc                 O   s   |   ¡ |i |¤ŽS r
   r   r   r   r   r   r   …   s    zTest_ACL._makeOnec                 C   s&   |   ¡ }|  |ji ¡ |  |j¡ d S r
   )r   r   ÚentitiesÚassertFalseÚloaded©r   Úaclr   r   r   Ú	test_ctorˆ   s    zTest_ACL.test_ctorc                    s2   |   ¡ ‰ ‡ fdd„}|ˆ _ˆ  ¡  |  ˆ j¡ d S )Nc                      s
   dˆ _ d S ©NT)Ú_really_loadedr   ©rG   r   r   Ú_reload   s    z-Test_ACL.test__ensure_loaded.<locals>._reload)r   ÚreloadZ_ensure_loadedÚ
assertTruerJ   ©r   rL   r   rK   r   Útest__ensure_loaded   s
    zTest_ACL.test__ensure_loadedc                    s    |   ¡ ‰ |  t‡ fdd„¡ d S )Nc                      s   ˆ j S r
   ©Úclientr   rK   r   r   Ú<lambda>™   ó    z2Test_ACL.test_client_is_abstract.<locals>.<lambda>)r   ÚassertRaisesÚNotImplementedError©r   r   rK   r   Útest_client_is_abstract—   s    z Test_ACL.test_client_is_abstractc                 C   sH   d}d}|   ¡ }d|_| ||¡ | ¡  |  |ji ¡ |  |j¡ d S ©Nr   r   T)r   rE   r   Úresetr   rC   rD   ©r   r   r   rG   r   r   r   Ú
test_reset›   s    zTest_ACL.test_resetc                 C   s"   |   ¡ }d|_|  t|ƒg ¡ d S rI   )r   rE   r   ÚlistrF   r   r   r   Útest___iter___empty_eager¥   s    z"Test_ACL.test___iter___empty_eagerc                    s:   |   ¡ ‰ ‡ fdd„}|ˆ _|  tˆ ƒg ¡ |  ˆ j¡ d S )Nc                      s
   dˆ _ d S rI   ©rE   r   rK   r   r   rL   ­   s    z2Test_ACL.test___iter___empty_lazy.<locals>._reload)r   rM   r   r]   rN   rE   rO   r   rK   r   Útest___iter___empty_lazyª   s
    z!Test_ACL.test___iter___empty_lazyc                 C   s6   d}d}|   ¡ }d|_| ||¡ |  t|ƒg ¡ d S rY   )r   rE   r   r   r]   r[   r   r   r   Ú test___iter___non_empty_no_roles´   s    z)Test_ACL.test___iter___non_empty_no_rolesc                 C   sT   d}d}d}|   ¡ }d|_| ||¡}| |¡ |  t|ƒd||f |dœg¡ d S )Nr   r   r$   Tr"   ©r   r$   ©r   rE   r   r&   r   r]   ©r   r   r   r(   rG   r   r   r   r   Útest___iter___non_empty_w_roles¼   s    

ÿz(Test_ACL.test___iter___non_empty_w_rolesc                 C   s@   d}d}|   ¡ }d|_| ||¡}| d¡ |  t|ƒg ¡ d S )Nr   r   TÚ rc   ©r   r   r   rG   r   r   r   r   Ú$test___iter___non_empty_w_empty_roleÇ   s    
z-Test_ACL.test___iter___non_empty_w_empty_rolec                 C   s†   d}|   ¡ }d|_| d|dœ¡}|  |jd¡ |  |jd ¡ |  | ¡ t|gƒ¡ |  t|ƒd|dœg¡ |  t| 	¡ ƒ|g¡ d S ©Nr$   TÚallUsersrb   ©
r   rE   Úentity_from_dictr   r   r   r   r   r]   Úget_entities©r   r(   rG   r   r   r   r   Ú$test_entity_from_dict_allUsers_eagerÐ   s    

ÿz-Test_ACL.test_entity_from_dict_allUsers_eagerc                 C   s†   d}|   ¡ }d|_| d|dœ¡}|  |jd¡ |  |jd ¡ |  | ¡ t|gƒ¡ |  t|ƒd|dœg¡ |  t| 	¡ ƒ|g¡ d S ©Nr$   TZallAuthenticatedUsersrb   rk   rn   r   r   r   Ú+test_entity_from_dict_allAuthenticatedUsersÜ   s    ÿ

ÿz4Test_ACL.test_entity_from_dict_allAuthenticatedUsersc                 C   s†   d}|   ¡ }d|_| d|dœ¡}|  |jd¡ |  |jd¡ |  | ¡ t|gƒ¡ |  t|ƒd|dœg¡ |  t| 	¡ ƒ|g¡ d S )Nr$   Tútype-idrb   r   r   rk   rn   r   r   r   Ú%test_entity_from_dict_string_w_hyphené   s    

ÿz.Test_ACL.test_entity_from_dict_string_w_hyphenc                 C   s@   d}|   ¡ }d|_|  t|jd|dœ¡ |  t| ¡ ƒg ¡ d S )Nr$   TÚbogusrb   )r   rE   rU   Ú
ValueErrorrl   r   r]   rm   )r   r(   rG   r   r   r   Ú&test_entity_from_dict_string_wo_hyphenõ   s    þz/Test_ACL.test_entity_from_dict_string_wo_hyphenc                 C   s"   |   ¡ }d|_|  | d¡¡ d S ©NTr1   )r   rE   rD   Ú
has_entityrF   r   r   r   Útest_has_entity_miss_str_eagerþ   s    z'Test_ACL.test_has_entity_miss_str_eagerc                    s:   |   ¡ ‰ ‡ fdd„}|ˆ _|  ˆ  d¡¡ |  ˆ j¡ d S )Nc                      s
   dˆ _ d S rI   r_   r   rK   r   r   rL     s    z7Test_ACL.test_has_entity_miss_str_lazy.<locals>._reloadr1   )r   rM   rD   rx   rN   rE   rO   r   rK   r   Útest_has_entity_miss_str_lazy  s
    z&Test_ACL.test_has_entity_miss_str_lazyc                 C   s@   ddl m} d}d}|||ƒ}|  ¡ }d|_|  | |¡¡ d S ©Nr   r   r   r   T)r   r   r   rE   rD   rx   ©r   r   r   r   r   rG   r   r   r   Útest_has_entity_miss_entity  s    
z$Test_ACL.test_has_entity_miss_entityc                 C   s>   d}d}|   ¡ }d|_| ||¡ |  | d||f ¡¡ d S ©Nr   r   Tr"   ©r   rE   r   rN   rx   r[   r   r   r   Útest_has_entity_hit_str  s    z Test_ACL.test_has_entity_hit_strc                 C   s6   d}d}|   ¡ }d|_| ||¡}|  | |¡¡ d S rY   r   rg   r   r   r   Útest_has_entity_hit_entity  s    z#Test_ACL.test_has_entity_hit_entityc                 C   s$   |   ¡ }d|_|  | d¡d ¡ d S rw   )r   rE   r   Ú
get_entityrF   r   r   r   Ú)test_get_entity_miss_str_no_default_eager&  s    z2Test_ACL.test_get_entity_miss_str_no_default_eagerc                    s<   |   ¡ ‰ ‡ fdd„}|ˆ _|  ˆ  d¡d ¡ |  ˆ j¡ d S )Nc                      s
   dˆ _ d S rI   r_   r   rK   r   r   rL   .  s    zBTest_ACL.test_get_entity_miss_str_no_default_lazy.<locals>._reloadr1   )r   rM   r   r‚   rN   rE   rO   r   rK   r   Ú(test_get_entity_miss_str_no_default_lazy+  s
    z1Test_ACL.test_get_entity_miss_str_no_default_lazyc                 C   sB   ddl m} d}d}|||ƒ}|  ¡ }d|_|  | |¡d ¡ d S r{   )r   r   r   rE   r   r‚   r|   r   r   r   Ú&test_get_entity_miss_entity_no_default5  s    
z/Test_ACL.test_get_entity_miss_entity_no_defaultc                 C   s.   t ƒ }|  ¡ }d|_|  | d|¡|u ¡ d S rw   )Úobjectr   rE   rN   r‚   )r   ÚDEFAULTrG   r   r   r   Ú"test_get_entity_miss_str_w_default>  s    z+Test_ACL.test_get_entity_miss_str_w_defaultc                 C   sL   ddl m} tƒ }d}d}|||ƒ}|  ¡ }d|_|  | ||¡|u ¡ d S r{   )r   r   r†   r   rE   rN   r‚   )r   r   r‡   r   r   r   rG   r   r   r   Ú%test_get_entity_miss_entity_w_defaultD  s    
z.Test_ACL.test_get_entity_miss_entity_w_defaultc                 C   s>   d}d}|   ¡ }d|_| ||¡ |  | d||f ¡¡ d S r~   r   r[   r   r   r   Útest_get_entity_hit_strN  s    z Test_ACL.test_get_entity_hit_strc                 C   s6   d}d}|   ¡ }d|_| ||¡}|  | |¡¡ d S rY   r   rg   r   r   r   Útest_get_entity_hit_entityV  s    z#Test_ACL.test_get_entity_hit_entityc                 C   s‚   ddl m} d}d}d}|||ƒ}| |¡ |  ¡ }d|_| |¡ |  |j¡ |  t|ƒd|dœg¡ |  t| 	¡ ƒ|g¡ d S )	Nr   r   r   r   r$   Trr   rb   )
r   r   r&   r   rE   Ú
add_entityrN   r   r]   rm   )r   r   r   r   r(   r   rG   r   r   r   Útest_add_entity_miss_eager^  s    




ÿz#Test_ACL.test_add_entity_miss_eagerc                    sš   ddl m} d}d}d}|||ƒ}| |¡ |  ¡ ‰ ‡ fdd„}|ˆ _ˆ  |¡ |  ˆ j¡ |  t	ˆ ƒd|d	œg¡ |  t	ˆ  
¡ ƒ|g¡ |  ˆ j¡ d S )
Nr   r   r   r   r$   c                      s
   dˆ _ d S rI   r_   r   rK   r   r   rL   v  s    z3Test_ACL.test_add_entity_miss_lazy.<locals>._reloadrr   rb   )r   r   r&   r   rM   rŒ   rN   rE   r   r]   rm   )r   r   r   r   r(   r   rL   r   rK   r   Útest_add_entity_miss_lazym  s     




ÿz"Test_ACL.test_add_entity_miss_lazyc           	      C   sÂ   ddl m} d}d}d||f }d}|||ƒ}| |¡ |  ¡ }d|_| ||¡}| |¡ |  |j¡ |  | 	|¡|u ¡ |  | 	|¡|u ¡ |  
t|ƒd|d	œg¡ |  
t| ¡ ƒ|g¡ d S )
Nr   r   r   r   r"   r$   Trr   rb   )r   r   r&   r   rE   r   rŒ   rN   rD   r‚   r   r]   rm   )	r   r   r   r   Z
ENTITY_VALr(   r   rG   Úbeforer   r   r   Útest_add_entity_hit  s$    




ÿzTest_ACL.test_add_entity_hitc                 C   sn   d}d}d}|   ¡ }d|_| ||¡}|  |j¡ | |¡ |  t|ƒd|dœg¡ |  t| ¡ ƒ|g¡ d S ©Nr   r   r$   Trr   rb   )r   rE   r   rN   r&   r   r]   rm   rd   r   r   r   Útest_entity_miss”  s    


ÿzTest_ACL.test_entity_missc                 C   s|   d}d}d}|   ¡ }d|_| ||¡}| |¡ | ||¡}|  ||u ¡ |  t|ƒd|dœg¡ |  t| ¡ ƒ|g¡ d S r‘   )r   rE   r   r&   rN   r   r]   rm   )r   r   r   r(   rG   r   r   r   r   r   Útest_entity_hit¡  s    


ÿzTest_ACL.test_entity_hitc                 C   sf   d}d}|   ¡ }d|_| |¡}| |¡ |  |jd¡ |  |j|¡ |  t|ƒd| |dœg¡ d S )Nr   r$   TÚuserzuser-%srb   )r   rE   r”   r&   r   r   r   r]   ©r   r   r(   rG   r   r   r   r   Ú	test_user¯  s    


ÿzTest_ACL.test_userc                 C   sf   d}d}|   ¡ }d|_| |¡}| |¡ |  |jd¡ |  |j|¡ |  t|ƒd| |dœg¡ d S )Nr   r$   TÚgroupzgroup-%srb   )r   rE   r—   r&   r   r   r   r]   r•   r   r   r   Ú
test_group»  s    


ÿzTest_ACL.test_groupc                 C   sf   d}d}|   ¡ }d|_| |¡}| |¡ |  |jd¡ |  |j|¡ |  t|ƒd| |dœg¡ d S )Nr   r$   TÚdomainz	domain-%srb   )r   rE   r™   r&   r   r   r   r]   r•   r   r   r   Útest_domainÇ  s    


ÿzTest_ACL.test_domainc                 C   s\   d}|   ¡ }d|_| ¡ }| |¡ |  |jd¡ |  |jd ¡ |  t|ƒd|dœg¡ d S ri   )r   rE   Úallr&   r   r   r   r]   rn   r   r   r   Útest_allÓ  s    


ÿzTest_ACL.test_allc                 C   s\   d}|   ¡ }d|_| ¡ }| |¡ |  |jd¡ |  |jd ¡ |  t|ƒd|dœg¡ d S rp   )r   rE   Zall_authenticatedr&   r   r   r   r]   rn   r   r   r   Útest_all_authenticatedÞ  s    


ÿzTest_ACL.test_all_authenticatedc                 C   s"   |   ¡ }d|_|  | ¡ g ¡ d S rI   )r   rE   r   rm   rF   r   r   r   Útest_get_entities_empty_eageré  s    z&Test_ACL.test_get_entities_empty_eagerc                    s:   |   ¡ ‰ ‡ fdd„}|ˆ _|  ˆ  ¡ g ¡ |  ˆ j¡ d S )Nc                      s
   dˆ _ d S rI   r_   r   rK   r   r   rL   ñ  s    z6Test_ACL.test_get_entities_empty_lazy.<locals>._reload)r   rM   r   rm   rN   rE   rO   r   rK   r   Útest_get_entities_empty_lazyî  s
    z%Test_ACL.test_get_entities_empty_lazyc                 C   s8   d}d}|   ¡ }d|_| ||¡}|  | ¡ |g¡ d S rY   )r   rE   r   r   rm   rg   r   r   r   Útest_get_entities_nonemptyø  s    z#Test_ACL.test_get_entities_nonemptyc                 C   s’   d}t i ƒ}t|ƒ}|  ¡ }d|_d|_| d|¡ |j|d |  t|ƒg ¡ |j	}|  t
|ƒd¡ |  |d d d	¡ |  |d d
 d¡ d S )Nr$   ú/testing/aclTrj   rQ   é   r   ÚmethodÚGETÚpath)Ú_ConnectionÚ_Clientr   Úreload_pathrE   r   rM   r   r]   Ú
_requestedÚlen©r   r(   Ú
connectionrR   rG   r   r   r   r   Útest_reload_missing   s    zTest_ACL.test_reload_missingc                 C   s¢   d}t dg iƒ}t|ƒ}|  ¡ }d|_d|_| d|¡ |j|d |  |j¡ |  t	|ƒg ¡ |j
}|  t|ƒd¡ |  |d d	 d
¡ |  |d d d¡ d S )Nr$   Úitemsr¡   Trj   rQ   r¢   r   r£   r¤   r¥   )r¦   r§   r   r¨   rE   r   rM   rN   r   r]   r©   rª   r«   r   r   r   Ú%test_reload_empty_result_clears_local  s    z.Test_ACL.test_reload_empty_result_clears_localc                 C   s¦   d}t dd|dœgiƒ}t|ƒ}|  ¡ }d|_d|_|j|d |  |j¡ |  t|ƒd|dœg¡ |j	}|  t
|ƒd¡ |  |d	 d
 d¡ |  |d	 d d¡ d S )Nr$   r®   rj   rb   r¡   TrQ   r¢   r   r£   r¤   r¥   )r¦   r§   r   r¨   rE   rM   rN   r   r]   r©   rª   r«   r   r   r   Útest_reload_nonempty_result   s    ÿz$Test_ACL.test_reload_nonempty_resultc                 C   sB   t ƒ }t|ƒ}|  ¡ }d|_|j|d |j}|  t|ƒd¡ d S )Nú/testingrQ   r   )r¦   r§   r   Ú	save_pathÚsaver©   r   rª   ©r   r¬   rR   rG   r   r   r   r   Útest_save_none_set_none_passed0  s    z'Test_ACL.test_save_none_set_none_passedc                 C   s²   t i ƒ}t|ƒ}|  ¡ }d|_d|_|j|d |  t|ƒg ¡ |j}|  t	|ƒd¡ |  |d d d¡ |  |d d d¡ |  |d d	 d
g i¡ |  |d d ddi¡ d S )Nr±   TrQ   r¢   r   r£   ÚPATCHr¥   ÚdatarG   Úquery_paramsÚ
projectionÚfull)
r¦   r§   r   r²   rE   r³   r   r]   r©   rª   r´   r   r   r   Ú&test_save_existing_missing_none_passed9  s    z/Test_ACL.test_save_existing_missing_none_passedc                 C   sÖ   d}d|dœg}t d|iƒ}t|ƒ}|  ¡ }d|_d|_| d¡ |¡ |j|d |  t	|ƒ|¡ |j
}|  t|ƒd¡ |  |d	 d
 d¡ |  |d	 d d¡ |  |d	 d d|i¡ |  |d	 d ddi¡ d S )Nr$   rj   rb   rG   r±   TrQ   r¢   r   r£   r¶   r¥   r·   r¸   r¹   rº   )r¦   r§   r   r²   rE   r   r&   r³   r   r]   r©   rª   )r   r(   ZAFTERr¬   rR   rG   r   r   r   r   Útest_save_no_aclH  s     zTest_ACL.test_save_no_aclc           
      C   s  d}d}d|dœ}d|dœg}t d|g| iƒ}t|ƒ}|  ¡ }d|_d|_|j||d t|ƒ}|  t|ƒd	¡ |  	||v ¡ |  	|d
 |v ¡ |j
}	|  t|	ƒd¡ |  |	d
 d d¡ |  |	d
 d d¡ |  |	d
 d d|i¡ |  |	d
 d ddi¡ d S )Nr+   r,   rj   rb   rG   r±   TrQ   é   r   r¢   r£   r¶   r¥   r·   r¸   r¹   rº   )r¦   r§   r   r²   rE   r³   r]   r   rª   rN   r©   )
r   r.   r/   ÚSTICKYZnew_aclr¬   rR   rG   Úentriesr   r   r   r   Útest_save_w_aclZ  s(    
zTest_ACL.test_save_w_aclc                 C   s^   t ƒ }t|ƒ}|  ¡ }d|_d|_|  t¡ |jd|d W d   ƒ n1 sP0    Y  d S )Nr±   Trt   rQ   )r¦   r§   r   r²   rE   rU   ru   Úsave_predefined)r   r¬   rR   rG   r   r   r   Útest_save_prefefined_invalidp  s    z%Test_ACL.test_save_prefefined_invalidc                 C   sÆ   d}t dg iƒ}t|ƒ}|  ¡ }d|_d|_|j||d t|ƒ}|  t|ƒd¡ |j	}|  t|ƒd¡ |  |d d d	¡ |  |d d
 d¡ |  |d d dg i¡ |  |d d d|dœ¡ d S )NÚprivaterG   r±   TrQ   r   r¢   r£   r¶   r¥   r·   r¸   rº   ©r¹   ZpredefinedAcl©
r¦   r§   r   r²   rE   rÁ   r]   r   rª   r©   ©r   Z
PREDEFINEDr¬   rR   rG   r¿   r   r   r   r   Útest_save_predefined_validy  s"    ÿz#Test_ACL.test_save_predefined_validc                 C   sÊ   d}d}t dg iƒ}t|ƒ}|  ¡ }d|_d|_|j||d t|ƒ}|  t|ƒd¡ |j	}|  t|ƒd¡ |  |d d	 d
¡ |  |d d d¡ |  |d d dg i¡ |  |d d d|dœ¡ d S )Nzproject-privateZprojectPrivaterG   r±   TrQ   r   r¢   r£   r¶   r¥   r·   r¸   rº   rÄ   rÅ   )r   ZPREDEFINED_XMLZPREDEFINED_JSONr¬   rR   rG   r¿   r   r   r   r   Ú test_save_predefined_w_XML_alias‹  s(    ÿÿz)Test_ACL.test_save_predefined_w_XML_aliasc                 C   sÌ   d}t dg iƒ}t|ƒ}|  ¡ }d|_d|_d|_|j||d t|ƒ}|  t	|ƒd¡ |j
}|  t	|ƒd¡ |  |d d	 d
¡ |  |d d d¡ |  |d d dg i¡ |  |d d d|dœ¡ d S )NZ
publicReadrG   r±   TÚ	alternaterQ   r   r¢   r£   r¶   r¥   r·   r¸   rº   )r¹   rÉ   )r¦   r§   r   r²   rE   Z_PREDEFINED_QUERY_PARAMrÁ   r]   r   rª   r©   rÆ   r   r   r   Ú2test_save_predefined_valid_w_alternate_query_paramŸ  s$    ÿz;Test_ACL.test_save_predefined_valid_w_alternate_query_paramc                 C   sØ   d}d}d|dœ}t d|giƒ}t|ƒ}|  ¡ }d|_d|_| d|¡ |j|d |  t|ƒ|g¡ |j	}|  t
|ƒd	¡ |  |d
 d d¡ |  |d
 d d¡ |  |d
 d dg i¡ |  |d
 d ddi¡ d S )Nr+   r,   rj   rb   rG   r±   TrQ   r¢   r   r£   r¶   r¥   r·   r¸   r¹   rº   )r¦   r§   r   r²   rE   r   Úclearr   r]   r©   rª   )r   r.   r/   r¾   r¬   rR   rG   r   r   r   r   Ú
test_clear³  s"    
zTest_ACL.test_clearN)7r>   r?   r@   r	   r   rH   rP   rX   r\   r^   r`   ra   re   rh   ro   rq   rs   rv   ry   rz   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¼   rÀ   rÂ   rÇ   rÈ   rÊ   rÌ   r   r   r   r   rA      sh   


		
	
	

		rA   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTest_BucketACLc                 C   s   ddl m} |S )Nr   )Ú	BucketACL)r   rÎ   )r   rÎ   r   r   r   r	   É  s    zTest_BucketACL._getTargetClassc                 O   s   |   ¡ |i |¤ŽS r
   r   r   r   r   r   r   Í  s    zTest_BucketACL._makeOnec                 C   sh   d}t |ƒ}|  |¡}|  |ji ¡ |  |j¡ |  |j|u ¡ |  |jd| ¡ |  |j	d| ¡ d S )NÚnamez	/b/%s/aclú/b/%s©
Ú_Bucketr   r   rC   rD   rE   rN   Úbucketr¨   r²   ©r   ÚNAMErÓ   rG   r   r   r   rH   Ð  s    
zTest_BucketACL.test_ctorN©r>   r?   r@   r	   r   rH   r   r   r   r   rÍ   Ç  s   rÍ   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTest_DefaultObjectACLc                 C   s   ddl m} |S )Nr   )ÚDefaultObjectACL)r   rØ   )r   rØ   r   r   r   r	   Ý  s    z%Test_DefaultObjectACL._getTargetClassc                 O   s   |   ¡ |i |¤ŽS r
   r   r   r   r   r   r   á  s    zTest_DefaultObjectACL._makeOnec                 C   sh   d}t |ƒ}|  |¡}|  |ji ¡ |  |j¡ |  |j|u ¡ |  |jd| ¡ |  |j	d| ¡ d S )NrÏ   z/b/%s/defaultObjectAclrÐ   rÑ   rÔ   r   r   r   rH   ä  s    
zTest_DefaultObjectACL.test_ctorNrÖ   r   r   r   r   r×   Û  s   r×   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTest_ObjectACLc                 C   s   ddl m} |S )Nr   )Ú	ObjectACL)r   rÚ   )r   rÚ   r   r   r   r	   ñ  s    zTest_ObjectACL._getTargetClassc                 O   s   |   ¡ |i |¤ŽS r
   r   r   r   r   r   r   õ  s    zTest_ObjectACL._makeOnec                 C   s~   d}d}t |ƒ}t||ƒ}|  |¡}|  |ji ¡ |  |j¡ |  |j|u ¡ |  |j	d||f ¡ |  |j
d||f ¡ d S )NrÏ   z	blob-namez/b/%s/o/%s/aclz
/b/%s/o/%s)rÒ   Ú_Blobr   r   rC   rD   rE   rN   Úblobr¨   r²   )r   rÕ   Z	BLOB_NAMErÓ   rÜ   rG   r   r   r   rH   ø  s    

zTest_ObjectACL.test_ctorNrÖ   r   r   r   r   rÙ   ï  s   rÙ   c                   @   s    e Zd Zdd„ Zedd„ ƒZdS )rÛ   c                 C   s   || _ || _d S r
   )rÓ   rÜ   )r   rÓ   rÜ   r   r   r   Ú__init__  s    z_Blob.__init__c                 C   s   d| j j| jf S )Nz%s/o/%s)rÓ   r¥   rÜ   rW   r   r   r   r¥     s    z
_Blob.pathN©r>   r?   r@   rÝ   Úpropertyr¥   r   r   r   r   rÛ     s   rÛ   c                   @   s    e Zd Zdd„ Zedd„ ƒZdS )rÒ   c                 C   s
   || _ d S r
   ©rÏ   )r   rÏ   r   r   r   rÝ     s    z_Bucket.__init__c                 C   s
   d| j  S )NrÐ   rà   rW   r   r   r   r¥     s    z_Bucket.pathNrÞ   r   r   r   r   rÒ     s   rÒ   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )r¦   Fc                 G   s   || _ g | _g | _d S r
   )Ú
_responsesr©   Ú_deleted)r   Ú	responsesr   r   r   rÝ     s    z_Connection.__init__c                 K   s,   | j  |¡ | jd | jdd …  }| _|S )Nr   r¢   )r©   Úappendrá   )r   r   Úresponser   r   r   Úapi_request"  s    z_Connection.api_requestN)r>   r?   r@   Z
_delete_okrÝ   ræ   r   r   r   r   r¦     s   r¦   c                   @   s   e Zd Zdd„ ZdS )r§   c                 C   s
   || _ d S r
   )r¬   )r   r¬   r   r   r   rÝ   *  s    z_Client.__init__N)r>   r?   r@   rÝ   r   r   r   r   r§   (  s   r§   )Z	unittest2ZTestCaser   rA   rÍ   r×   rÙ   r†   rÛ   rÒ   r¦   r§   r   r   r   r   Ú<module>   s   m    L
