a
    !f                     @   sb   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dS )    Nc                   @   s   e Zd Zdd Zdd ZdS )Test_ClientFactoryMixinc                 C   s   ddl m} |S )Nr   )_ClientFactoryMixin)gcloud.clientr   )selfr    r   S/var/www/html/python-backend/venv/lib/python3.9/site-packages/gcloud/test_client.py_getTargetClass   s    z'Test_ClientFactoryMixin._getTargetClassc                 C   s   |   }| d|jv  d S )N__init__)r   ZassertFalse__dict__)r   klassr   r   r   test_virtual   s    z$Test_ClientFactoryMixin.test_virtualN)__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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 )
TestClientc                 C   s   |   }|j| _t|_d S Nr   _connection_classoriginal_cnxn_class_MockConnectionr   KLASSr   r   r   setUp   s    zTestClient.setUpc                 C   s   |   }| j|_d S r   r   r   r   r   r   r   r   tearDown$   s    zTestClient.tearDownc                 C   s   ddl m} |S )Nr   )Client)r   r   )r   r   r   r   r   r   (   s    zTestClient._getTargetClassc                 O   s   |   |i |S r   r   r   argskwr   r   r   _makeOne,   s    zTestClient._makeOnec                    s   ddl m} ddlm} t  g  fdd}|||d |  }W d    n1 sZ0    Y  | t|jt	 | |jj
 u  | dg d S )Nr   _Monkeyclientc                      s    d  S Nget_credentialsappendr   CREDENTIALS
FUNC_CALLSr   r   mock_get_credentials6   s    
z;TestClient.test_ctor_defaults.<locals>.mock_get_credentials)r&   r&   )gcloud._testingr"   gcloudr$   objectr    
assertTrue
isinstance
connectionr   credentialsassertEqual)r   r"   r$   r,   
client_objr   r)   r   test_ctor_defaults/   s    &zTestClient.test_ctor_defaultsc                 C   sT   t  }t  }| j||d}| t|jt | |jj|u  | |jj|u  d S )Nr3   http)r/   r    r0   r1   r2   r   r3   r8   )r   r*   HTTPr5   r   r   r   test_ctor_explicitA   s    zTestClient.test_ctor_explicitc                 C   s   ddl m} ddlm} |  }d}t }|||d ||}W d    n1 sV0    Y  | |jj	|j
u  | |j|g d S )Nr   r!   r#   foo.pathZServiceAccountCredentials)r-   r"   r.   r$   r   _MockServiceAccountCredentialsfrom_service_account_jsonr0   r2   r3   _resultr4   json_called)r   r"   r$   r   MOCK_FILENAME
mock_credsr5   r   r   r   test_from_service_account_jsonJ   s    (
z)TestClient.test_from_service_account_jsonc                 C   s&   |   }t }| jt|jd |d d S N)r3   )r   r/   assertRaises	TypeErrorr>   r   r   r*   r   r   r   #test_from_service_account_json_failX   s
    z.TestClient.test_from_service_account_json_failc                 C   s   ddl m} ddlm} |  }d}d}t }|||d |||}W d    n1 s\0    Y  | |jj	|j
u  | |j||fg d S )Nr   r!   r#   zphred@example.comr;   r<   )r-   r"   r.   r$   r   r=   from_service_account_p12r0   r2   r3   r?   r4   
p12_called)r   r"   r$   r   ZCLIENT_EMAILrA   rB   r5   r   r   r   test_from_service_account_p12^   s     "
z(TestClient.test_from_service_account_p12c                 C   s(   |   }t }| jt|jd d |d d S rD   )r   r/   rE   rF   rI   rG   r   r   r   "test_from_service_account_p12_failo   s
    z-TestClient.test_from_service_account_p12_failN)r   r   r   r   r   r   r    r6   r:   rC   rH   rK   rL   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S )TestJSONClientc                 C   s   |   }|j| _t|_d S r   r   r   r   r   r   r   x   s    zTestJSONClient.setUpc                 C   s   |   }| j|_d S r   r   r   r   r   r   r   }   s    zTestJSONClient.tearDownc                 C   s   ddl m} |S )Nr   )
JSONClient)r   rN   )r   rN   r   r   r   r      s    zTestJSONClient._getTargetClassc                 O   s   |   |i |S r   r   r   r   r   r   r       s    zTestJSONClient._makeOnec                    s   ddl m} ddlm} dt  g fdd} fdd}||||d	 |  }W d    n1 sn0    Y  | |j | t	|j
t | |j
j u  | d
dg d S )Nr   r!   r#   PROJECTc                    s     | df S N_determine_default_projectr'   project)r+   rO   r   r   mock_determine_proj   s    z>TestJSONClient.test_ctor_defaults.<locals>.mock_determine_projc                      s    d  S r%   r'   r   r)   r   r   r,      s    
z?TestJSONClient.test_ctor_defaults.<locals>.mock_get_credentials)r&   rQ   rP   r&   )r-   r"   r.   r$   r/   r    r4   rS   r0   r1   r2   r   r3   )r   r"   r$   rT   r,   r5   r   )r*   r+   rO   r   r6      s$    &z!TestJSONClient.test_ctor_defaultsc                    st   ddl m} ddlm} g   fdd}|||d | t| j W d    n1 sX0    Y  |  dg d S )Nr   r!   r#   c                    s     | df d S rP   r'   rR   r+   r   r   rT      s    zETestJSONClient.test_ctor_missing_project.<locals>.mock_determine_proj)rQ   rP   )r-   r"   r.   r$   rE   EnvironmentErrorr    r4   )r   r"   r$   rT   r   rU   r   test_ctor_missing_project   s    ,z(TestJSONClient.test_ctor_missing_projectc                 C   sL   t  }t  }| t" | jt  ||d W d    n1 s>0    Y  d S )NrS   r3   r8   )r/   rE   
ValueErrorr    )r   r*   r9   r   r   r   test_ctor_w_invalid_project   s    z*TestJSONClient.test_ctor_w_invalid_projectc                 C   s   dd l }t }t }| j|||d}t||jrF| |j|d n| |j| | t|j	t
 | |j	j|u  | |j	j|u  d S )Nr   rX   zutf-8)sixr/   r    r1   binary_typer4   rS   decoder0   r2   r   r3   r8   )r   rS   r[   r*   r9   r5   r   r   r   _explicit_ctor_helper   s    z$TestJSONClient._explicit_ctor_helperc                 C   s   d}|  | d S )Ns   PROJECTr^   r   rO   r   r   r   test_ctor_explicit_bytes   s    z'TestJSONClient.test_ctor_explicit_bytesc                 C   s   d}|  | d S )NrO   r_   r`   r   r   r   test_ctor_explicit_unicode   s    z)TestJSONClient.test_ctor_explicit_unicodeN)r   r   r   r   r   r   r    r6   rW   rZ   r^   ra   rb   r   r   r   r   rM   v   s   rM   c                   @   s   e Zd ZdddZdS )r   Nc                 C   s   || _ || _d S r   r7   )r   r3   r8   r   r   r   r	      s    z_MockConnection.__init__)NN)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S )r=   c                 C   s   g | _ g | _t | _d S r   )rJ   r@   r/   r?   )r   r   r   r   r	      s    z'_MockServiceAccountCredentials.__init__c                 C   s   | j ||f | jS r   )rJ   r(   r?   )r   emailpathr   r   r   from_p12_keyfile   s    z/_MockServiceAccountCredentials.from_p12_keyfilec                 C   s   | j | | jS r   )r@   r(   r?   )r   rd   r   r   r   from_json_keyfile_name   s    z5_MockServiceAccountCredentials.from_json_keyfile_nameN)r   r   r   r	   re   rf   r   r   r   r   r=      s   r=   )Z	unittest2ZTestCaser   r   rM   r/   r   r=   r   r   r   r   <module>   s
   Y\