+
    2‰}j¿  c                   óÜ   € ^ RI t^ RIHu Ht ^ RIt^ RIt^ RIH	t	 ^ RI
Ht ^ RIHt R t]P                  P                   R 4       t]P                  P                   R 4       tR tR	 tR
 tR# )é    N)Ústatus)Úget_database)Úget_session_by_idc                 ó	  € R \         P                  ! 4       P                  R,           R2pV P                  RRVRR/R7      pVP                  p\
        P                  qCV8H  qU'       Eg   \        P                  ! R V3R!W434      RR	\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MR	R
\        P                  ! V4      RR\        P                  ! 4       9   g!   \        P                  ! \
        4      '       d   \        P                  ! \
        4      MRR\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rTVP                  4       R,          pRRV 2/p	V P                  RRV/V	R7      p
V
P                  p\
        P                  qCV8H  qU'       Eg   \        P                  ! R V3R!W434      RR\        P                  ! 4       9   g   \        P                  ! V
4      '       d   \        P                  ! V
4      MRR
\        P                  ! V4      RR\        P                  ! 4       9   g!   \        P                  ! \
        4      '       d   \        P                  ! \
        4      MRR\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rTV
P                  4       pRqÌV9   qÝ'       g±   \        P                  ! R"V3R#WË34      R\        P                  ! V4      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MR/,          pRRV/,          p\        \        P                  ! V4      4      hR;rÍVR,          qÌP                   pRpV! V4      pV'       g�   RR\        P                  ! V4      R\        P                  ! V4      R\        P                  ! V4      R\        P                  ! V4      /,          p\        \        P                  ! V4      4      hR;p;p;ppR# )$zshop-ºNé   Nú.comú/api/v1/tenant/registerÚdomainÚnamezSession Test Store©ÚjsonÚpy0Úreg_respÚpy2Úpy4r   Úpy6úassert %(py8)sÚpy8NÚsiteIdÚOriginúhttp://ú/api/v1/session/init©r   ÚheadersÚ	init_respÚ	sessionIdÚpy1Úpy3Údataúassert %(py5)sÚpy5Úsess_zLassert %(py7)s
{%(py7)s = %(py3)s
{%(py3)s = %(py1)s.startswith
}(%(py5)s)
}Úpy7©ú==©zY%(py2)s
{%(py2)s = %(py0)s.status_code
} == %(py6)s
{%(py6)s = %(py4)s.HTTP_201_CREATED
}©Úin)z%(py1)s in %(py3)s)Ú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
   r   Ú@py_assert1Ú@py_assert5Ú@py_assert3Ú@py_format7Ú@py_format9Úsite_idr   r   r   Ú@py_assert0Ú@py_assert2Ú@py_format4Ú@py_format6Ú@py_assert4Ú@py_assert6Ú@py_format8s   &                  ÚHC:\Users\alokc\chatbot\dev\chatbot\chatbot\backend\tests\test_session.pyÚtest_init_session_successrG      sš  € à”T—Z’Z“\×%Ñ% bÕ)Ð*¨$Ð/€FØ�{‰{Ð4Ø�&ØÐ$ð<ˆ{ó €Hð ×ÑÐ:¤6×#:Ñ#:Ð:Ð#:Ñ:×:×:×:Ô:Ð×:×:×:×:×:×:ˆ8×:×:×:Ò:ˆ8×:×:Ö:Ð×:×:×:×:×:Ö:¤6×:×:×:Ò:¤6×:×:Ö:Ð#:×:×:×:×:×:×:×:Ò:Ø�m‰m‹o˜hÕ'€Gð ˜7 6 (Ð+Ð,€GØ—‘Ð2¸(ÀGÐ9LÐV]�Ó^€Ià× Ñ Ð;¤F×$;Ñ$;Ð;Ð$;Ñ;×;×;×;Ô;Ð ×;×;×;×;×;×;ˆ9×;×;×;Ò;ˆ9×;×;Ö;Ð ×;×;×;×;×;Ö;¤F×;×;×;Ò;¤F×;×;Ö;Ð$;×;×;×;×;×;×;×;Ò;Ø�>‰>Ó€DØÐ˜$Ñ×××Óˆ;××Õˆ;×××××Ö˜$×××Ò˜$×××××××ÒØ�ÕÐ0×'Ñ'Ð0¨Ð0Ñ'¨Ó0Ð0×0×0×0Ñ0Ð×0×0Ô0Ð'×0×0Ô0¨×0×0Ô0Ð0×0×0×0×0×0×0Ô0ó    c              ƒ   ó	  "  € R \         P                  ! 4       P                  R,           R2pV P                  RRVRR/R7      pVP	                  4       R,          pR	R
V 2/pRVRRRRRRR//pV P                  RWTR7      pVP
                  p\        P                  q‡V8H  q™'       Eg   \        P                  ! R&V	3R'Wx34      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      RR\        P                  ! 4       9   g!   \        P                  ! \        4      '       d   \        P                  ! \        4      MRR\        P                  ! V4      /,          p
RRV
/,          p\        \        P                  ! V4      4      hR;p;r˜VP	                  4       R,          p\!        4       p\#        WÜ4      G Rj  x€L
 pRqþVJqw'       g±   \        P                  ! R(V3R)Wï34      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      /,          pRR V/,          p\        \        P                  ! V4      4      hR;rVR!,          pRp	VV	8H  qÿ'       gz   \        P                  ! R&V3R*VV	34      R"\        P                  ! V4      R\        P                  ! V	4      /,          pR#RV/,          p
\        \        P                  ! V
4      4      hR;p;rùVR$,          pRp	VV	8H  qÿ'       gz   \        P                  ! R&V3R*VV	34      R"\        P                  ! V4      R\        P                  ! V	4      /,          pR#RV/,          p
\        \        P                  ! V
4      4      hR;p;rùVR%,          pRp	VV	8H  qÿ'       gz   \        P                  ! R&V3R*VV	34      R"\        P                  ! V4      R\        P                  ! V	4      /,          pR#RV/,          p
\        \        P                  ! V
4      4      hR;p;rùR#  EL…5i)+zuser-r   r   r	   r
   r   zUser Identity Storer   r   r   r   ÚuserÚidÚusr_test_101zJohn VisitorÚemailzjohn.visitor@example.comr   r   r   r   r   r   r   r   r   r   Nr   Úsession_docr   r    r!   ÚuserIdr   úassert %(py6)sÚuserNameÚ	userEmailr$   r&   ©úis not©z%(py0)s is not %(py3)s©z%(py1)s == %(py4)s©r)   r*   r+   r,   r   r-   r   r.   r/   r0   r1   r2   r3   r4   r5   r6   r   r   )r8   r
   r   r>   r   Úuser_payloadr   r9   r:   r;   r<   r=   Ú
session_idÚdbrN   r@   rA   rB   r?   Ú@py_format5s   &                   rF   Ú%test_init_session_with_logged_in_userr\      sÚ  é € à”T—Z’Z“\×%Ñ% bÕ)Ð*¨$Ð/€FØ�{‰{Ð4Ø�&ØÐ%ð<ˆ{ó €Hð �m‰m‹o˜hÕ'€Gà˜7 6 (Ð+Ð,€Gà�'ØØ�.Ø�NØÐ/ð
ð€Lð —‘Ð2¸�ÓW€IØ× Ñ Ð;¤F×$;Ñ$;Ð;Ð$;Ñ;×;×;×;Ô;Ð ×;×;×;×;×;×;ˆ9×;×;×;Ò;ˆ9×;×;Ö;Ð ×;×;×;×;×;Ö;¤F×;×;×;Ò;¤F×;×;Ö;Ð$;×;×;×;×;×;×;×;Ò;Ø—‘Ó! +Õ.€Jô 
‹€BÜ)¨"Ó9×9€KØ"Ð"˜dÐ"×"×"×"Ó"ˆ;×"×"×"×"×"×"ˆ;×"×"×"Ò"ˆ;×"×"Ö"˜d×"×"×"×"×"×"×"Ð"Ø�xÕ Ð2 NÐ2Ð  NÑ2×2×2×2Ó2Ð  N×2×2Õ2Ð ×2×2Ô2 N×2×2×2×2×2×2×2Ò2Ø�zÕ"Ð4 nÐ4Ð" nÑ4×4×4×4Ó4Ð" n×4×4Õ4Ð"×4×4Ô4 n×4×4×4×4×4×4×4Ò4Ø�{Õ#ÐAÐ'AÐAÐ#Ð'AÑA×A×A×AÓAÐ#Ð'A×A×AÕAÐ#×A×AÔAÐ'A×A×A×A×A×A×A×AÔAò	 :ùs(   ‚C7RÃ:A'RÅ"BRÇ9Q>Ç:A RÉH$Rc              ƒ   ó¤  "  € R \         P                  ! 4       P                  R,           R2pV P                  RRVRR/R7      pVP	                  4       R,          pR	R
V 2RR/pV P                  RRV/VR7      pVP
                  p\        P                  qvV8H  qˆ'       Eg   \        P                  ! R!V3R"Wg34      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      RR\        P                  ! 4       9   g!   \        P                  ! \        4      '       d   \        P                  ! \        4      MRR\        P                  ! V4      /,          p	RRV	/,          p
\        \        P                  ! V
4      4      hR;p;r‡VP	                  4       R,          p\!        4       p\#        WË4      G Rj  x€L
 pRqíVJqf'       g±   \        P                  ! R#V3R$WÞ34      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;rnVR,          pRpVV8H  qî'       gz   \        P                  ! R!V3R%VV34      R\        P                  ! V4      R\        P                  ! V4      /,          pR RV/,          p	\        \        P                  ! V	4      4      hR;p;rèR#  EL[5i)&zip-r   r   r	   r
   r   zIP Capture Storer   r   r   r   zX-Forwarded-Forz203.0.113.195, 70.41.3.18r   r   r   r   r   r   r   r   r   r   Nr   rN   r   r    r!   Ú	ipAddressz203.0.113.195r   rP   r$   r&   rS   rU   rV   rW   )r8   r
   r   r>   r   r   r9   r:   r;   r<   r=   rY   rZ   rN   r@   rA   rB   r?   r[   s   &                  rF   Ú,test_init_session_x_forwarded_for_ip_capturer_   8   s  é € à”4—:’:“<×#Ñ# BÕ'Ð(¨Ð-€FØ�{‰{Ð4Ø�&ØÐ"ð<ˆ{ó €Hð �m‰m‹o˜hÕ'€Gð 	�G˜F˜8Ð$ØÐ6ð€Gð —‘Ð2¸(ÀGÐ9LÐV]�Ó^€IØ× Ñ Ð;¤F×$;Ñ$;Ð;Ð$;Ñ;×;×;×;Ô;Ð ×;×;×;×;×;×;ˆ9×;×;×;Ò;ˆ9×;×;Ö;Ð ×;×;×;×;×;Ö;¤F×;×;×;Ò;¤F×;×;Ö;Ð$;×;×;×;×;×;×;×;Ò;Ø—‘Ó! +Õ.€Jô 
‹€BÜ)¨"Ó9×9€KØ"Ð"˜dÐ"×"×"×"Ó"ˆ;×"×"×"×"×"×"ˆ;×"×"×"Ò"ˆ;×"×"Ö"˜d×"×"×"×"×"×"×"Ð"Ø�{Õ#Ð6 Ð6Ð# Ñ6×6×6×6Ó6Ð# ×6×6Õ6Ð#×6×6Ô6 ×6×6×6×6×6×6×6Ô6ò :ùs(   ‚C0MÃ3A'MÅBMÇ2MÇ3A MÉC:Mc                 ó  € R R/pV P                  RRR/VR7      pVP                  p\        P                  qCV8H  qU'       Eg   \        P
                  ! RV3RW434      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R	R
\        P                  ! 4       9   g!   \        P                  ! \        4      '       d   \        P                  ! \        4      MR
R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rTRq‚P                  4       R,          qXV9   q™'       gy   \        P
                  ! RV	3RW…34      R\        P                  ! V4      R	\        P                  ! V4      /,          p
RRV
/,          p\        \        P                  ! V4      4      hR;p;r•R# )r   úhttp://example.comr   r   Úsite_nonexistent_999r   r   Úresponser   r   r   r   r   r   NzTenant not foundÚdetailr   rP   r$   )z[%(py2)s
{%(py2)s = %(py0)s.status_code
} == %(py6)s
{%(py6)s = %(py4)s.HTTP_404_NOT_FOUND
}r'   ©z%(py1)s in %(py4)s)r,   r-   r   ÚHTTP_404_NOT_FOUNDr/   r0   r1   r2   r3   r4   r5   r6   r   )r8   r   rc   r9   r:   r;   r<   r=   r?   r@   r[   s   &          rF   Ú!test_init_session_unknown_site_idrg   O   s"  € ØÐ-Ð.€GØ�{‰{Ð1¸ÐCYÐ8ZÐdkˆ{Ól€HØ×ÑÐ<¤6×#<Ñ#<Ð<Ð#<Ñ<×<×<×<Ô<Ð×<×<×<×<×<×<ˆ8×<×<×<Ò<ˆ8×<×<Ö<Ð×<×<×<×<×<Ö<¤6×<×<×<Ò<¤6×<×<Ö<Ð#<×<×<×<×<×<×<×<Ò<ØÐ:§¡£°Õ!:Ð:Ð!:Ñ:×:×:×:Ó:Ð×:×:Õ:Ð×:×:Ô:Ð!:×:×:×:×:×:×:×:Ô:rH   c                 ó¼  € R \         P                  ! 4       P                  R,           R2pV P                  RRVRR/R7      pVP	                  4       R,          pR	R
/pV P                  RRV/VR7      pVP
                  p\        P                  qvV8H  qˆ'       Eg   \        P                  ! RV3RWg34      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      RR\        P                  ! 4       9   g!   \        P                  ! \        4      '       d   \        P                  ! \        4      MRR\        P                  ! V4      /,          p	RRV	/,          p
\        \        P                  ! V
4      4      hR;p;r‡RqµP	                  4       R,          q‹V9   qÌ'       gy   \        P                  ! RV3RW¸34      R\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p	\        \        P                  ! V	4      4      hR;p;rÈR# )zauthorized-r   r   r	   r
   r   zAuthorized Storer   r   r   z http://unauthorized-attacker.comr   r   r   rc   r   r   r   r   r   r   Nznot authorizedrd   r   rP   r$   )z[%(py2)s
{%(py2)s = %(py0)s.status_code
} == %(py6)s
{%(py6)s = %(py4)s.HTTP_403_FORBIDDEN
}r'   re   )r)   r*   r+   r,   r   r-   r   ÚHTTP_403_FORBIDDENr/   r0   r1   r2   r3   r4   r5   r6   )r8   r
   r   r>   Úunauthorized_headersrc   r9   r:   r;   r<   r=   r?   r@   r[   s   &             rF   Ú%test_init_session_unauthorized_originrk   U   sw  € Øœ4Ÿ:š:›<×+Ñ+¨BÕ/Ð0°Ð5€FØ�{‰{Ð4Ø�&ØÐ"ð<ˆ{ó €Hð �m‰m‹o˜hÕ'€Gà$Ð&HÐIÐØ�{‰{Ð1¸À7Ð8KÐUiˆ{Ój€Hà×ÑÐ<¤6×#<Ñ#<Ð<Ð#<Ñ<×<×<×<Ô<Ð×<×<×<×<×<×<ˆ8×<×<×<Ò<ˆ8×<×<Ö<Ð×<×<×<×<×<Ö<¤6×<×<×<Ò<¤6×<×<Ö<Ð#<×<×<×<×<×<×<×<Ò<ØÐ8Ÿ}™}›¨xÕ8Ð8Ð8Ñ8×8×8×8Ó8Ð×8×8Õ8Ð×8×8Ô8Ð8×8×8×8×8×8×8×8Ô8rH   c                 óÌ  € R R/pV P                  RRR/VR7      pVP                  p\        P                  qCV8H  qU'       Eg   \        P
                  ! RV3RW434      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R	R
\        P                  ! 4       9   g!   \        P                  ! \        4      '       d   \        P                  ! \        4      MR
R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rTR# )r   ra   r   r   Ú r   r   rc   r   r   r   r   r   r   Nr$   )zf%(py2)s
{%(py2)s = %(py0)s.status_code
} == %(py6)s
{%(py6)s = %(py4)s.HTTP_422_UNPROCESSABLE_ENTITY
})r,   r-   r   ÚHTTP_422_UNPROCESSABLE_ENTITYr/   r0   r1   r2   r3   r4   r5   r6   )r8   r   rc   r9   r:   r;   r<   r=   s   &       rF   Ú"test_init_session_validation_errorro   c   sÇ   € ØÐ-Ð.€GØ�{‰{Ð1¸À2¸ÐPWˆ{ÓX€HØ×ÑÐG¤6×#GÑ#GÐGÐ#GÑG×G×G×GÔGÐ×G×G×G×G×G×Gˆ8×G×G×GÒGˆ8×G×GÖGÐ×G×G×G×G×GÖG¤6×G×G×GÒG¤6×G×GÖGÐ#G×G×G×G×G×G×G×GÔGrH   )Úbuiltinsr1   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter/   r)   ÚpytestÚfastapir   Úapp.databaser   Ú#app.repositories.session_repositoryr   rG   ÚmarkÚanyior\   r_   rg   rk   ro   © rH   rF   Ú<module>r{      sk   ðß  „ ƒÛ Ý Ý %Ý Aò1ð& ‡�×ÑñBó ðBð: ‡�×Ññ7ó ð7ò,;ò9ôHrH   