a
    ù!f¨'  ã                   @   sP   d dl 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                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚTest__ProjectIteratorc                 C   s   ddl m} |S )Nr   ©Ú_ProjectIterator)Úgcloud.resource_manager.clientr   )Úselfr   © r   úd/var/www/html/python-backend/venv/lib/python3.9/site-packages/gcloud/resource_manager/test_client.pyÚ_getTargetClass   s    z%Test__ProjectIterator._getTargetClassc                 O   s   |   ¡ |i |¤ŽS ©N©r	   ©r   ÚargsÚkwr   r   r   Ú_makeOne   s    zTest__ProjectIterator._makeOnec                 C   s\   t ƒ }|  |¡}|  |jd¡ |  |jd¡ |  |jd ¡ |  |j|u ¡ |  |ji ¡ d S )Nú	/projectsr   )	Úobjectr   ÚassertEqualÚpathZpage_numberZnext_page_tokenÚ
assertTrueÚclientZextra_params©r   r   Úiteratorr   r   r   Útest_constructor   s    
z&Test__ProjectIterator.test_constructorc                 C   s*   t ƒ }|  |¡}|  t| i ¡ƒg ¡ d S r
   )r   r   r   ÚlistÚget_items_from_responser   r   r   r   Ú"test_get_items_from_response_empty$   s    
z8Test__ProjectIterator.test_get_items_from_response_emptyc                 C   sÊ   ddl m} d}d}d}ddi}d}|||||d	œ}d
|gi}tƒ }	|  |	¡}
t|
 |¡ƒ}|\}|  t||ƒ¡ |  |j	|¡ |  |j
|	¡ |  |j|¡ |  |j|¡ |  |j|¡ |  |j|¡ d S )Nr   ©ÚProjectú
project-idzMy Project NameiNa¼ ÚenvÚprodÚACTIVE)Ú	projectIdÚnameÚprojectNumberÚlabelsÚlifecycleStateÚprojects)Úgcloud.resource_manager.projectr   r   r   r   r   r   Ú
isinstancer   Ú
project_idÚ_clientr#   Únumberr%   Ústatus)r   r   Ú
PROJECT_IDZPROJECT_NAMEÚPROJECT_NUMBERZPROJECT_LABELSZPROJECT_LIFECYCLE_STATEZAPI_RESOURCEZRESPONSEr   r   r'   Úprojectr   r   r   Ú&test_get_items_from_response_non_empty)   s0    û

z<Test__ProjectIterator.test_get_items_from_response_non_emptyN)Ú__name__Ú
__module__Ú__qualname__r	   r   r   r   r1   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 )Ú
TestClientc                 C   s   ddl m} |S )Nr   )ÚClient)r   r6   )r   r6   r   r   r   r	   J   s    zTestClient._getTargetClassc                 O   s   |   ¡ |i |¤ŽS r
   r   r   r   r   r   r   N   s    zTestClient._makeOnec                 C   s\   ddl m} tƒ }tƒ }| j||d}|  t|j|ƒ¡ |  |jj	|¡ |  |jj
|¡ d S )Nr   )Ú
Connection)ÚcredentialsÚhttp)Z"gcloud.resource_manager.connectionr7   r   Ú_Credentialsr   r   r)   Ú
connectionr   Z_credentialsZ_http)r   r7   r9   r8   r   r   r   r   r   Q   s    zTestClient.test_constructorc                 C   sŠ   ddl m} tƒ }| j|d}d}tƒ }tƒ }|j|||d}|  t||ƒ¡ |  |j	|¡ |  |j
|¡ |  |j|¡ |  |j|¡ d S )Nr   r   ©r8   r*   )r#   r%   )r(   r   r:   r   r   Znew_projectr   r)   r   r+   r*   r#   r%   )r   r   r8   r   r*   r#   r%   r0   r   r   r   Útest_new_project_factory[   s    z#TestClient.test_new_project_factoryc           
      C   s¢   ddl m} d}d}d}ddi}||||dd	œ}tƒ }| j|d
}t|ƒ|_| |¡}	|  t|	|ƒ¡ |  	|	j
|¡ |  	|	j|¡ |  	|	j|¡ |  	|	j|¡ d S )Nr   r   r   é{   zProject Namer   r    r!   )r"   r$   r#   r%   r&   r<   )r(   r   r:   r   Ú_Connectionr;   Zfetch_projectr   r)   r   r+   r*   r#   r%   )
r   r   r*   Zproject_numberÚproject_namer%   Zproject_resourcer8   r   r0   r   r   r   Útest_fetch_projectk   s(    û

zTestClient.test_fetch_projectc                 C   s@   ddl m} tƒ }| j|d}ti ƒ|_| ¡ }|  ||¡ d S )Nr   r   r<   )r   r   r:   r   r?   r;   Úlist_projectsZassertIsInstance)r   r   r8   r   Úresultsr   r   r   Útest_list_projects_return_type†   s    
z)TestClient.test_list_projects_return_typec           	      C   sˆ   t ƒ }| j|d}d}d}d}d|||dœgi}t|ƒ|_|  d|v ¡ t| ¡ ƒ}|\}|  |j|¡ |  |j	|¡ |  |j
|¡ d S )Nr<   r   é   r!   r'   ©r"   r$   r&   ÚnextPageToken)r:   r   r?   r;   ZassertFalser   rB   r   r*   r,   r-   )	r   r8   r   r.   r/   ÚSTATUSÚPROJECTS_RESOURCErC   r0   r   r   r   Útest_list_projects_no_paging‘   s&    ýÿÿ

z'TestClient.test_list_projects_no_pagingc                 C   s
  t ƒ }| j|d}d}d}d}d}|||dœg|dœ}d}d	}	d
||	|dœgi}
t||
ƒ|_t|jddƒ}|\}}|  |j|¡ |  |j|¡ |  |j	|¡ |  |j|¡ |  |j|	¡ |  |j	|¡ |jj
\}}|  |ddddidœ¡ |  |ddd|dœdœ¡ d S )Nr<   r   rE   r!   znext-page-tokenrF   )r'   rG   zproject-id-2é*   r'   )Z	page_sizer   ÚGETÚpageSize©r   ÚmethodZquery_params)rM   Z	pageToken©r:   r   r?   r;   r   rB   r   r*   r,   r-   Ú
_requested)r   r8   r   ZPROJECT_ID1ZPROJECT_NUMBER1rH   ZTOKENZFIRST_PROJECTS_RESOURCEZPROJECT_ID2ZPROJECT_NUMBER2ZSECOND_PROJECTS_RESOURCErC   Zproject1Zproject2Zrequest1Zrequest2r   r   r   Útest_list_projects_with_paging­   s^    ýÿø
ýÿÿ
ÿÿýþýz)TestClient.test_list_projects_with_pagingc                 C   s¨   t ƒ }| j|d}d}d}d}d|||dœgi}t|ƒ|_ddi}t|j|dƒ}|\}	|  |	j|¡ |  |	j|¡ |  |	j	|¡ |jj
\}
|  |
d	d
d|idœ¡ d S )Nr<   r   rE   r!   r'   rF   Úid)Zfilter_paramsr   rL   ÚfilterrN   rP   )r   r8   r   r.   r/   rH   rI   ZFILTER_PARAMSrC   r0   Úrequestr   r   r   Útest_list_projects_with_filterì   s4    ýÿÿ


ÿýz)TestClient.test_list_projects_with_filterN)r2   r3   r4   r	   r   r   r=   rA   rD   rJ   rR   rV   r   r   r   r   r5   H   s   
?r5   c                   @   s$   e Zd ZdZedd„ ƒZdd„ ZdS )r:   Nc                   C   s   dS )NTr   r   r   r   r   Úcreate_scoped_required  s    z#_Credentials.create_scoped_requiredc                 C   s
   || _ | S r
   )Ú_scopes)r   Úscoper   r   r   Úcreate_scoped  s    z_Credentials.create_scoped)r2   r3   r4   rX   ÚstaticmethodrW   rZ   r   r   r   r   r:     s   
r:   c                   @   s   e Zd Zdd„ Zdd„ ZdS )r?   c                 G   s   || _ g | _d S r
   )Ú
_responsesrQ   )r   Ú	responsesr   r   r   Ú__init__!  s    z_Connection.__init__c                 K   s,   | j  |¡ | jd | jdd …  }| _|S )Nr   rE   )rQ   Úappendr\   )r   r   Úresponser   r   r   Úapi_request%  s    z_Connection.api_requestN)r2   r3   r4   r^   ra   r   r   r   r   r?     s   r?   )Z	unittest2ZTestCaser   r5   r   r:   r?   r   r   r   r   Ú<module>   s
   6 K