a
    !f/                     @   s>   d dl 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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 )(TestProjectc                 C   s   ddl m} |S )Nr   )Project)Zgcloud.resource_manager.projectr   )selfr    r   e/var/www/html/python-backend/venv/lib/python3.9/site-packages/gcloud/resource_manager/test_project.py_getTargetClass   s    zTestProject._getTargetClassc                 O   s   |   |i |S N)r   )r   argskwr   r   r   _makeOne   s    zTestProject._makeOnec                 C   sn   t  }d}| ||}| |j| | |j| | |jd  | |jd  | |ji  | |jd  d S N
project-id	objectr   assertEqual
project_id_clientnamenumberlabelsstatus)r   client
PROJECT_IDprojectr   r   r   test_constructor_defaults   s    z%TestProject.test_constructor_defaultsc                 C   s   t  }d}d}ddi}| j||||d}| |j| | |j| | |j| | |jd  | |j| | |jd  d S )Nr   r   Zfoobarr   r   r   )r   r   r   ZDISPLAY_NAMELABELSr   r   r   r   test_constructor_explicit&   s    z%TestProject.test_constructor_explicitc           	      C   s   t  }d}d}d}ddi}d}|||||d}|  ||}| |j| | |j| | |j| | |j| | |j| | |j	| d S )Nr   zMy Project NameiNa envprodACTIVE)	projectIdr   projectNumberr   lifecycleState)
r   r   Zfrom_api_reprr   r   r   r   r   r   r   )	r   r   r   PROJECT_NAMEPROJECT_NUMBERZPROJECT_LABELSZPROJECT_LIFECYCLE_STATEresourcer   r   r   r   test_from_api_repr4   s&    zTestProject.test_from_api_reprc                 C   s&   d}|  |d }| d| |j d S )Nr   zprojects/%s)r   r   	full_namer   r   r   r   r   r   test_full_nameH   s    zTestProject.test_full_namec                 C   sF   |  d d }| t | |j W d    n1 s80    Y  d S r   )r   assertRaises
ValueErrorZassertIsNoner)   )r   r   r   r   r   test_full_name_missing_idM   s    z%TestProject.test_full_name_missing_idc                 C   s&   d}|  |d }| d| |j d S )Nr   z/projects/%s)r   r   pathr*   r   r   r   	test_pathR   s    zTestProject.test_pathc           	      C   s   d}d}||di dd}t |}t|d}| ||}| |jd  |  | |j| |j\}d|i d dd	d
}| || d S )Nr   {   Project Namer!   r"   r#   r   r   r$   
connectionPOST)r"   r   r   z	/projectsmethoddatar/   )_Connection_Clientr   r   r   create
_requested	r   r   r&   PROJECT_RESOURCEr5   r   r   requestexpected_requestr   r   r   test_createW   s.    
	zTestProject.test_createc           	      C   s   d}d}||dddidd}t |}t|d}| ||}| |jd  | |jd  | |ji  | |jd  |  | |j|d	  | |j| | |j|d
  | |j|d  |j	\}d|j
d}| || d S )Nr   r1   r2   r   r    r!   r3   r4   r   r   r$   GETr8   r/   )r:   r;   r   r   r   r   r   r   reloadr=   r/   r>   r   r   r   test_reloadt   s2    
zTestProject.test_reloadc                 C   s8   d}t d|i}t|d}| ||}| |  d S )Nr   r"   r4   r:   r;   r   
assertTrueexistsr   r   r5   r   r   r   r   r   test_exists   s
    
zTestProject.test_existsc                 C   s<   d}t d|i}t|d}| |d }| |j|d d S )Nr   r"   r4   )r   rG   rJ   r   r   r   )test_exists_with_explicitly_passed_client   s
    
z5TestProject.test_exists_with_explicitly_passed_clientc                 C   sF   d}|  |d }| t |  W d    n1 s80    Y  d S r   )r   r,   AttributeErrorrI   r*   r   r   r   test_exists_with_missing_client   s    z+TestProject.test_exists_with_missing_clientc                 C   s2   d}t  }t|d}| ||}| |  d S )Nr   r4   )r:   r;   r   ZassertFalserI   rJ   r   r   r   test_exists_not_found   s
    
z!TestProject.test_exists_not_foundc                 C   s   d}d}d}ddi}||||dd}t |}t|d}| ||}||_||_|  |j\}	d	||d
|jd}
| |	|
 d S )Nr   r1   r2   r   r    r!   r3   r4   PUTr   r7   )	r:   r;   r   r   r   updater=   r/   r   )r   r   r&   r%   r   r?   r5   r   r   r@   rA   r   r   r   test_update   s0    
zTestProject.test_updatec           	      C   sj   d}d}||dddidd}t |}t|d}| ||}|jd	d
 |j\}d|jd}| || d S )Nr   r1   r2   r   r    r!   r3   r4   FZreload_dataDELETErD   )r:   r;   r   deleter=   r/   r   r>   r   r   r   test_delete_without_reload_data   s"    
z+TestProject.test_delete_without_reload_datac                 C   s   d}d}||dddidd}|  }d |d	< }t||}t|d
}| ||}|jdd | |j| |j\}	}
d|jd}| |	| d|jd}| |
| d S )Nr   r1   r2   r   r    r!   r3   DELETE_REQUESTEDr$   r4   TrS   rT   rD   rC   )	copyr:   r;   r   rU   r   r   r=   r/   )r   r   r&   r?   ZDELETING_PROJECT	NEW_STATEr5   r   r   Zdelete_requestget_requestZexpected_delete_requestexpected_get_requestr   r   r   test_delete_with_reload_data   s0    


z(TestProject.test_delete_with_reload_datac           	      C   sn   d}d}||dddidd}t |}t|d}| ||}|jd	d
 |j\}d|jd d}| || d S )Nr   r1   r2   r   r    rW   r3   r4   FrS   r6   	:undeleterD   )r:   r;   r   undeleter=   r/   r   r>   r   r   r   !test_undelete_without_reload_data  s"    
z-TestProject.test_undelete_without_reload_datac                 C   s   d}d}||dddidd}|  }d |d	< }t||}t|d
}| ||}|jdd | |j| |j\}	}
d|jd d}| |	| d|jd}| |
| d S )Nr   r1   r2   r   r    rW   r3   r!   r$   r4   TrS   r6   r]   rD   rC   )	rX   r:   r;   r   r^   r   r   r=   r/   )r   r   r&   r?   ZUNDELETED_PROJECTrY   r5   r   r   Zundelete_requestrZ   Zexpected_undelete_requestr[   r   r   r   test_undelete_with_reload_data  s0    


z*TestProject.test_undelete_with_reload_dataN)__name__
__module____qualname__r   r   r   r   r(   r+   r.   r0   rB   rF   rK   rL   rN   rO   rR   rV   r\   r_   r`   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   )
_responsesr=   )r   	responsesr   r   r   __init__A  s    z_Connection.__init__c                 K   sV   ddl m} | j| z | jd | jdd   }| _W n   |dY n0 |S d S )Nr   )NotFound   Zmiss)Zgcloud.exceptionsrg   r=   appendrd   )r   r
   rg   responser   r   r   api_requestE  s     z_Connection.api_requestN)ra   rb   rc   rf   rk   r   r   r   r   r:   ?  s   r:   c                   @   s   e Zd ZdddZdS )r;   Nc                 C   s
   || _ d S r   r4   )r   r5   r   r   r   rf   S  s    z_Client.__init__)N)ra   rb   rc   rf   r   r   r   r   r;   Q  s   r;   )Z	unittest2ZTestCaser   r   r:   r;   r   r   r   r   <module>   s
     /