o
    -h�j   ã                   @   sJ   d dl Zd dlm  mZ d dlZd dlmZ dd„ Z	dd„ Z
dd„ ZdS )	é    N)Ústatusc                 C   s6  dt  ¡ jd d… › d�}|ddœ}| jd|d�}|j}tj}||k}|sjt d|fd	||f¡d
t	 
¡ v s:t |¡r?t |¡nd
t |¡dt	 
¡ v sOt t¡rTt t¡ndt |¡dœ }dd|i }tt |¡ƒ‚d  } }}| ¡ }	d}
|
|	v }|s¬t d|fd|
|	f¡t |
¡dt	 
¡ v s•t |	¡ršt |	¡nddœ }dd|i }tt |¡ƒ‚d  }
}|	d }
|
j}d}||ƒ}|sÛdt |
¡t |¡t |¡t |¡dœ }tt |¡ƒ‚d  }
 } }}|	d }
|
|k}|�s t d|fd|
|f¡t |
¡dt	 
¡ v �s	t |¡�rt |¡nddœ }dd|i }tt |¡ƒ‚d  }
}|	d }
d}|
|k}|�sTt d|fd|
|f¡t |
¡t |¡dœ }dd |i }tt |¡ƒ‚d  }
 }}d!}
|
|	v }|�s•t d|fd|
|	f¡t |
¡dt	 
¡ v �s~t |	¡�rƒt |	¡nddœ }dd|i }tt |¡ƒ‚d  }
}d S )"Nztest-é   ú.comzTest Acme Store©ÚdomainÚnameú/api/v1/tenant/register©Újson©ú==©zY%(py2)s
{%(py2)s = %(py0)s.status_code
} == %(py6)s
{%(py6)s = %(py4)s.HTTP_201_CREATED
}Úresponser   ©Úpy0Úpy2Úpy4Úpy6úassert %(py8)sÚpy8ÚsiteId©Úin)z%(py1)s in %(py3)sÚdata)Úpy1Úpy3zassert %(py5)sÚpy5Úsite_zLassert %(py7)s
{%(py7)s = %(py3)s
{%(py3)s = %(py1)s.startswith
}(%(py5)s)
})r   r   r   Úpy7r   )z%(py1)s == %(py3)sÚunique_domainr   )z%(py1)s == %(py4)s©r   r   úassert %(py6)sr   Ú	createdAt)ÚuuidÚuuid4ÚhexÚpostÚstatus_coder   ÚHTTP_201_CREATEDÚ
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationr
   Ú
startswith)Úclientr   Úpayloadr   Ú@py_assert1Ú@py_assert5Ú@py_assert3Ú@py_format7Ú@py_format9r   Ú@py_assert0Ú@py_assert2Ú@py_format4Ú@py_format6Ú@py_assert4Ú@py_assert6Ú@py_format8Ú@py_format5© rA   ú2/web/html/dev/chatbot/backend/tests/test_tenant.pyÚtest_register_tenant_success   s   þ®xf‚l‚rC   c                 C   s  dt  ¡ jd d… › d�}|ddœ}| jd|d�}|j}tj}||k}|sjt d|fd	||f¡d
t	 
¡ v s:t |¡r?t |¡nd
t |¡dt	 
¡ v sOt t¡rTt t¡ndt |¡dœ }dd|i }tt |¡ƒ‚d  } }}| jd|d�}	|	j}tj}||k}|sÈt d|fd||f¡dt	 
¡ v s˜t |	¡r�t |	¡ndt |¡dt	 
¡ v s­t t¡r²t t¡ndt |¡dœ }dd|i }tt |¡ƒ‚d  } }}d}
|	 ¡ d }|
|v }|sÿt d|fd|
|f¡t |
¡t |¡dœ }dd|i }tt |¡ƒ‚d  }
 }}d S )Nzdup-r   r   zDuplicate Test Storer   r   r	   r   r   Úresp1r   r   r   r   )z]%(py2)s
{%(py2)s = %(py0)s.status_code
} == %(py6)s
{%(py6)s = %(py4)s.HTTP_400_BAD_REQUEST
}Úresp2zalready registeredÚdetailr   )z%(py1)s in %(py4)sr    r!   r   )r#   r$   r%   r&   r'   r   r(   r)   r*   r+   r,   r-   r.   r/   r0   ÚHTTP_400_BAD_REQUESTr
   )r2   r   r3   rD   r4   r5   r6   r7   r8   rE   r9   r:   r@   rA   rA   rB   Ú+test_register_tenant_duplicate_domain_fails   s   þ®®rrH   c                 C   sÊ   dddœ}| j d|d�}|j}tj}||k}|s]t d|fd||f¡dt ¡ v s-t |¡r2t 	|¡ndt 	|¡d	t ¡ v sBt t¡rGt 	t¡nd	t 	|¡d
œ }dd|i }t
t |¡ƒ‚d  } }}d S )Nzvalid-domain.comÚ r   r   r	   r   )zf%(py2)s
{%(py2)s = %(py0)s.status_code
} == %(py6)s
{%(py6)s = %(py4)s.HTTP_422_UNPROCESSABLE_ENTITY
}r   r   r   r   r   )r&   r'   r   ÚHTTP_422_UNPROCESSABLE_ENTITYr)   r*   r+   r,   r-   r.   r/   r0   )r2   r3   r   r4   r5   r6   r7   r8   rA   rA   rB   Ú%test_register_tenant_validation_error&   s
   þ²rK   )Úbuiltinsr+   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter)   r#   Úfastapir   rC   rH   rK   rA   rA   rA   rB   Ú<module>   s
   " 