a
    !f                     @   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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                   @   sV   e Zd Zd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S )Test_PropertyMixinc                 C   s   ddl m} |S )Nr   )_PropertyMixin)gcloud.storage._helpersr   )selfr    r   ]/var/www/html/python-backend/venv/lib/python3.9/site-packages/gcloud/storage/test__helpers.py_getTargetClass   s    z"Test_PropertyMixin._getTargetClassc                 O   s   |   |i |S Nr   )r   argskwr   r   r   _makeOne   s    zTest_PropertyMixin._makeOneNc                    s   G  fddd|   }|S )Nc                       s    e Zd ZdZe fddZdS )z1Test_PropertyMixin._derivedClass.<locals>.DerivedNc                    s    S r	   r   r   pathr   r   r   !   s    z6Test_PropertyMixin._derivedClass.<locals>.Derived.path)__name__
__module____qualname__clientpropertyr   r   r   r   r   Derived   s   r   r
   )r   r   r   r   r   r   _derivedClass   s    z Test_PropertyMixin._derivedClassc                    s    |    | t fdd d S )Nc                      s    j S r	   r   r   mixinr   r   <lambda>)       z:Test_PropertyMixin.test_path_is_abstract.<locals>.<lambda>r   assertRaisesNotImplementedErrorr   r   r   r   test_path_is_abstract'   s    z(Test_PropertyMixin.test_path_is_abstractc                    s    |    | t fdd d S )Nc                      s    j S r	   r   r   r   r   r   r   -   r   z<Test_PropertyMixin.test_client_is_abstract.<locals>.<lambda>r   r   r   r   r   test_client_is_abstract+   s    z*Test_PropertyMixin.test_client_is_abstractc                 C   s   t ddi}t|}| d }t |_|j|d | |jddi |j}| t	|d | |d d d | |d d	 d | |d d
 ddi | |jt
  d S )NfooFoo/pathr       r   methodGETr   query_params
projectionZnoAcl)_Connection_Clientr   object_changesreloadassertEqual_properties
_requestedlenset)r   
connectionr   derivedr   r   r   r   test_reload/   s    zTest_PropertyMixin.test_reloadc                 C   s8   |   }| |ji  t }|| | |j| d S r	   )r   r/   r0   r,   Z_set_properties)r   r   ZVALUEr   r   r   test__set_properties?   s
    
z'Test_PropertyMixin.test__set_propertiesc                 C   s,   |    }|dd | |jddi d S )Nr"   r#   )r   _patch_propertyr/   r0   )r   r5   r   r   r   test__patch_propertyF   s    
z'Test_PropertyMixin.test__patch_propertyc                 C   s   t ddi}t|}| d }t }t }||d|_tdg|_|j|d | |jddi |j	}| t
|d | |d d	 d
 | |d d d | |d d ddi | |d d d|i | |jt  d S )Nr"   r#   r$   )barZbazr:   r    r%   r   r&   PATCHr   r(   r)   fulldata)r*   r+   r   r,   r0   r3   r-   patchr/   r1   r2   )r   r4   r   r5   ZBARZBAZr   r   r   r   
test_patchK   s     zTest_PropertyMixin.test_patch)N)r   r   r   r   r   r   r   r!   r6   r7   r9   r?   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__scalar_propertyc                 C   s   ddl m} ||S )Nr   )_scalar_property)r   rA   )r   Z	fieldNamerA   r   r   r   _callFUTc   s    zTest__scalar_property._callFUTc                    s0   G  fdddt }|dd} |jd d S )Nc                       s   e Zd Zdd Z dZdS )z/Test__scalar_property.test_getter.<locals>.Testc                 [   s   |  | _d S r	   )copyr0   )r   r   r   r   r   __init__j   s    z8Test__scalar_property.test_getter.<locals>.Test.__init__solfegeN)r   r   r   rD   rB   do_re_mir   r   r   r   Testi   s   rG   Latido)rE   )r,   r/   rF   r   rG   testr   r   r   test_getterg   s    
z!Test__scalar_property.test_getterc                    s2   G  fdddt }| }d|_ |jd d S )Nc                       s   e Zd Zdd Z dZdS )z/Test__scalar_property.test_setter.<locals>.Testc                 S   s   ||f| _ d S r	   )_patched)r   namevaluer   r   r   r8   t   s    z?Test__scalar_property.test_setter.<locals>.Test._patch_propertyrE   N)r   r   r   r8   rB   rF   r   r   r   r   rG   s   s   rG   rH   )rE   rH   )r,   rF   r/   rL   rI   r   r   r   test_setterq   s    z!Test__scalar_property.test_setterN)r   r   r   rB   rK   rO   r   r   r   r   r@   a   s   
r@   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )Test__base64_md5hashc                 C   s   ddl m} ||S )Nr   )_base64_md5hash)r   rQ   )r   Zbytes_to_signrQ   r   r   r   rB      s    zTest__base64_md5hash._callFUTc                 C   sD   ddl m} d}| }|| |d | |}| |d d S )Nr   )BytesIOs   FOOs   kBiQqOnIz21aGlQrIp/r/w==)iorR   writeseekrB   r/   )r   rR   BYTES_TO_SIGNBUFFERSIGNED_CONTENTr   r   r   test_it   s    


zTest__base64_md5hash.test_itc           
      C   s   ddl m} ddlm} G dd dt}t }t }d}|d|g}t|}||||d | |}	W d    n1 sz0    Y  | |j	d	d	g | 
|	|u  | |j|g | |jd g | |jjd
 | |jj|g d S )Nr   )_Monkey)_helpersc                   @   s   e Zd Zdd Zdd ZdS )z8Test__base64_md5hash.test_it_with_stubs.<locals>._Bufferc                 S   s   || _ g | _d S r	   )return_vals_block_sizes)r   r\   r   r   r   rD      s    zATest__base64_md5hash.test_it_with_stubs.<locals>._Buffer.__init__c                 S   s   | j | | j S r	   )r]   appendr\   pop)r   
block_sizer   r   r   read   s    z=Test__base64_md5hash.test_it_with_stubs.<locals>._Buffer.readN)r   r   r   rD   ra   r   r   r   r   _Buffer   s   rb   s   BYTES_TO_SIGNr   )base64md5i    r%   )Zgcloud._testingrZ   Zgcloud.storager[   r,   _Base64_MD5rB   r/   r]   
assertTrue_called_b64encode_calledhash_objnum_digest_calls_blocks)
r   rZ   ZMUTrb   BASE64Z
DIGEST_VALrV   rW   MD5rX   r   r   r   test_it_with_stubs   s     
(z'Test__base64_md5hash.test_it_with_stubsN)r   r   r   rB   rY   ro   r   r   r   r   rP   }   s   
rP   c                   @   s   e Zd Zdd Zdd ZdS )r*   c                 G   s   || _ g | _d S r	   )
_responsesr1   )r   	responsesr   r   r   rD      s    z_Connection.__init__c                 K   s,   | j | | jd | jdd   }| _|S )Nr   r%   )r1   r^   rp   )r   r   responser   r   r   api_request   s    z_Connection.api_requestN)r   r   r   rD   rs   r   r   r   r   r*      s   r*   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )_MD5Hashc                 C   s   || _ d| _g | _d S )Nr   )
digest_valrk   rl   r   ru   r   r   r   rD      s    z_MD5Hash.__init__c                 C   s   | j | d S r	   )rl   r^   )r   blockr   r   r   update   s    z_MD5Hash.updatec                 C   s   |  j d7  _ | jS )Nr%   )rk   ru   r   r   r   r   digest   s    z_MD5Hash.digestN)r   r   r   rD   rx   ry   r   r   r   r   rt      s   rt   c                   @   s   e Zd Zdd ZdddZdS )rf   c                 C   s   t || _g | _d S r	   )rt   rj   ri   rv   r   r   r   rD      s    
z_MD5.__init__Nc                 C   s   | j | | jS r	   )ri   r^   rj   )r   r=   r   r   r   __call__   s    z_MD5.__call__)N)r   r   r   rD   rz   r   r   r   r   rf      s   rf   c                   @   s   e Zd Zdd Zdd ZdS )re   c                 C   s
   g | _ d S r	   )rh   r   r   r   r   rD      s    z_Base64.__init__c                 C   s   | j | |S r	   )rh   r^   )r   rN   r   r   r   	b64encode   s    z_Base64.b64encodeN)r   r   r   rD   r{   r   r   r   r   re      s   re   c                   @   s   e Zd Zdd ZdS )r+   c                 C   s
   || _ d S r	   )r4   )r   r4   r   r   r   rD      s    z_Client.__init__N)r   r   r   rD   r   r   r   r   r+      s   r+   )Z	unittest2ZTestCaser   r@   rP   r,   r*   rt   rf   re   r+   r   r   r   r   <module>   s   O/
