U
    hVc>&                     @   s   d dl mZmZ d dlmZ d dlT d dlmZ G dd dZG dd dZ	d	d
 Z
dd Zdd Zdd Zdd Zedkre  dS )    )uuid4UUID)Union)*)sessionc                   @   sX   e Zd Zdeeeeeef edddZedd Z	edd Z
ed	d
 Zdd ZdS )RPCResponseN)callidjsonrpcmetaresulterrorc                 C   s&   t || _|| _|| _|| _|| _d S N)r   r   r	   r
   r   r   )selfr   r	   r
   r   r    r   ./cmf/test.py__init__   s
    
zRPCResponse.__init__c                 C   s
   | j d kS r   r   r   r   r   r   ok   s    zRPCResponse.okc                 C   s
   | j d S )Ncoder   r   r   r   r   
error_code   s    zRPCResponse.error_codec                 C   s
   | j d S )Nmessager   r   r   r   r   error_message   s    zRPCResponse.error_messagec                 C   s   t |  d| j d| j dS )N(z, z) )typer   r   r   r   r   r   __str__"   s    zRPCResponse.__str__)NNN)__name__
__module____qualname__strdictr   listr   propertyr   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d	ZdS )RPCc                 C   s0   t  | _d| _d| _d| _d| _d| _d| _d S )Nzhttp://127.0.0.1:8080/api/ztest@test.testZ@0b9b9cab4b8df6d271d797b5632d18534820d6381567d9235dd93838385cd81eZ 7e86075f22e775b3580f3e8def9915c3z+79998887766)r   surlloginpasswordhashsaltphoner   r   r   r   r   '   s    zRPC.__init__c                 C   s>   | j jd| j| j| j| jdd}|jr2td ntd d S )Nz!http://127.0.0.1:8080/auth/signup)r&   r(   r)   r*   datau%   Регистрация успешнаul   Регистрация не успешна (скорее всего уже зарегестрированы))r$   postr&   r(   r)   r*   r   print)r   rr   r   r   signup0   s    	
z
RPC.signupc                 C   sb   | j jdd| jddj}tj| j| j|}| j jd| j|dd}|j	rVt
d nt
d d S )	Nz!http://127.0.0.1:8080/auth/signinZget_server_challenge)actionr&   params)r&   challenge_respr+   u   Вход успешенu   Вход не успешен)r$   getr&   textZmodelsZCmfAuthZtest_gen_server_challenge_respr'   r-   r   r.   )r   Zserver_challenger4   r/   r   r   r   signin?   s     
  

z
RPC.signinNc                 C   sD   t t d|||d}| jj| j|d}|jdks6ttf | S )NZstub)r   Zaccess_tokenmethodr3   fields)json   )	r   r   r$   r-   r%   Zstatus_codeAssertionErrorr   r:   )r   r8   r3   r9   Zpayloadr   r   r   r   callR   s    zRPC.call)NN)r   r   r   r   r0   r7   r=   r   r   r   r   r#   &   s   	r#   c                 C   sj  | j dddid}|jstd|jd ks.t| j dd|jd id}|jsPtd|jd ksbt|jd |jd kszt| j dddid}|jst| j d	|jd
|jd id}|jst| j dd|jd id}|jst|jd
 |jd kst|jd d |jd kst| j d	|jd
d id}|js:t| j dd|jd id}|js^t|jd
 d ksrt|jd d kst| j d	|jdd|jd iid}|jst| j dd|jd id}	|	jst|	jd d |jd kst| j d	|jdd id}
|
jst| j dd|jd id}|js>t|jd
 d ksRt|jd d ksftd S )NCmfGroup.createname
test groupr2   CmfGroup.getidCmfRole.create	test roleCmfGroup.updatehead_idheadr=   r   r<   r   rpcr1r2r3r4r5r6r7r8r9r10r11r   r   r   test_relationship_field_   sL    


 

 rV   c                 C   sj  | j dddid}|jstd|jd ks.t| j dd|jd id}|jsPtd|jd ksbt|jd |jd kszt| j dddid}|jst| j d	|jd
|jd id}|jst| j dd|jd id}|jst|jd
 |jd kst|jd d |jd kst| j d	|jd
d id}|js:t| j dd|jd id}|js^t|jd
 d ksrt|jd d kst| j d	|jdd|jd iid}|jst| j dd|jd id}	|	jst|	jd d |jd kst| j d	|jdd id}
|
jst| j dd|jd id}|js>t|jd d ksRt|jd d ksftd S )Nr>   r?   r@   r2   rA   rB   rC   rD   rE   Ztree_parent_idZtree_parentrF   rG   rH   rI   r   r   r   test_generic_relationship_field   sL    


 

rW   c                 C   s  | j dddid}|jstt|jd dks2t| j dddid}|jsNtt|jd dksdt| j dddid}|jst| j dddid}|jst| j d	|jdd
|jd
 igid}|jst| j dd
|jd
 id}|jstt|jd dkst|jd d d
 |jd
 ks&t| j d	|jdd
|jd
 igid}|jsVt| j dd
|jd
 id}|jsztt|jd dkst|jd d d
 |jd
 kst| j d	|jdd
|jd
 id
|jd
 igid}	|	jst| j dd
|jd
 id}
|
jstt|
jd dks,t|jd
 dd |
jd D ksPt|jd
 dd |
jd D kstt| j d	|jdg id}|jst| j dd
|jd
 id}|jstt|jd dkstd S )NrC   r?   rD   r2   Zpersonsr   CmfPerson.create	test userzCmfRole.updaterB   zCmfRole.get      c                 S   s   g | ]}|d  qS rB   r   .0ir   r   r   
<listcomp>   s     z"test_m2m_field.<locals>.<listcomp>c                 S   s   g | ]}|d  qS r\   r   r]   r   r   r   r`      s     r=   r   r<   lenr   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   Zr12r   r   r   test_m2m_field   s\    



 

" " $$rd   c                 C   s  | j dddid}|jstt|jd dks2t| j dddid}|jsNtt|jd dksdt| j dddid}|jst| j dddid}|jst| j d	|jdd
|jd
 igid}|jst| j dd
|jd
 id}|jstt|jd dkst|jd d d
 |jd
 ks&t| j d	|jdd
|jd
 igid}|jsVt| j dd
|jd
 id}|jsztt|jd dkst|jd d d
 |jd
 kst| j d	|jdd
|jd
 id
|jd
 igid}	|	jst| j dd
|jd
 id}
|
jstt|
jd dks,t|jd
 dd |
jd D ksPt|jd
 dd |
jd D kstt| j d	|jdg id}|jst| j dd
|jd
 id}|jstt|jd dkstd S )Nr>   r?   r@   r2   membersr   rX   rY   rE   rB   rA   rZ   r[   c                 S   s   g | ]}|d  qS r\   r   r]   r   r   r   r`   7  s     z#test_gm2m_field.<locals>.<listcomp>c                 S   s   g | ]}|d  qS r\   r   r]   r   r   r   r`   8  s     ra   rc   r   r   r   test_gm2m_field  s\    





"" $$rf   c                  C   sB   t  } |   |   t|  t|  t|  t|  td d S )Nr   )r#   r0   r7   rf   rd   rW   rV   r.   )rJ   r   r   r   testB  s    rg   __main__N)Zuuidr   r   typingr   Zcmf.includeZrequestsr   r   r#   rV   rW   rd   rf   rg   r   r   r   r   r   <module>   s   934=?