Ë
    ªêj  ã                   ó  — d dl Z d dlZd dlZd dlZd dlZd dlZ ej                  e«      j                  «       j                  d   Z
e
dz  ZdZd„ Zdefd„Zefd„Z G d„ d	ej                   «      Zed
k(  r ej&                  «        yy)é    Né   z$adapter/ym-sync-v2-bridge-review.phpz$17b19e77-0746-4cd6-9e37-31b2564ebddbc                 ó\   — t        j                  t        dz  | z  j                  «       «      S )NÚfixtures)ÚjsonÚloadsÚHEREÚ	read_text)Únames    úd/var/www/app.yachtmemory.net/YM-Source-Catalog-v2-Sync-Bridge-0.1.0-REVIEW/tests/test_wire_bridge.pyÚfixturer      s"   € œ$Ÿ*™*¤d¨:¡o°dÑ&:×%EÑ%EÓ%GÓHÐHó    c           	      ó¤   — t        j                  | dd¬«      }|||||t        j                  |j	                  «       «      j                  «       |dœS )NF)ú,ú:)Úensure_asciiÚ
separators)Ú	vessel_idÚseq_noÚentity_typeÚ
entity_keyÚentity_revisionÚcontent_hashÚpayload_json)r   ÚdumpsÚhashlibÚsha256ÚencodeÚ	hexdigest)ÚpayloadÚseqÚtype_ÚkeyÚrevÚvesselÚbodys          r   Úenvr&      s|   € Ü	�‰�G¨¸)Ô	D€DØ¨¸%ÈSÐcfÔv}÷  wEñ  wEð  FJ÷  FQñ  FQó  FSó  wT÷  w^ñ  w^ó  w`ð  ptñ  uð  ur   c                 ó|   — t        j                  dt        t        «      d|gt	        j
                  | «      dd¬«      S )NÚphpz--authenticated-vesselT)ÚinputÚtextÚcapture_output)Ú
subprocessÚrunÚstrÚSCRIPTr   r   )Údatar$   s     r   Úinvoker1   
   s>   € Ü�>‰>˜5¤¤V£Ð-EÀfÐMÔTX×T^ÑT^Ð_cÓTdÐjnð  Cô  Dð  Dr   c                   ó”   — e Zd Zd„ Zd„ Zd„ Zefd„Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestWireBridgec                 ó’   — t        d«      | _        t        d«      | _        t        d«      | _        | j                  d   d   | _        y )Nzheader.jsonzchunk-000.jsonzfinalize.jsonÚheaderÚsnapshot_id)r   r5   ÚchunkÚfinalizeÚsid©Úselfs    r   ÚsetUpzTestWireBridge.setUp   s<   € Ü˜MÓ*ˆŒÜÐ+Ó,ˆŒ
Ü˜oÓ.ˆŒØ—‘˜XÑ& }Ñ5ˆ�r   c                 óè   — |dk(  r"t        | j                  dd| j                  «      S |dk(  r%t        | j                  dd| j                  dz   «      S t        | j                  dd	| j                  «      S )
Nr5   r   Úsignalk_catalog_manifest_v2r7   é   Úsignalk_catalog_chunk_v2z:0é   Úsignalk_catalog_finalize_v2)r&   r5   r9   r7   r8   )r;   Úkinds     r   r   zTestWireBridge.payload   sd   € Ø�Š>¤ T§[¡[°Ð3PÐQU×QYÑQYÓ!ZÐZØ�Š=¤ D§J¡J¨qÐ1KÈDÏHÉHÐUYÉMÓ ZÐZÜ�4—=‘= Ð#@ÀÇÁÓJÐJr   c                 ó¤   — t        |«      }| j                  |j                  d|j                  «       t	        j
                  |j                  «      S ©Nr   )r1   ÚassertEqualÚ
returncodeÚstderrr   r   Ústdout)r;   ÚeÚps      r   ÚgoodzTestWireBridge.good   s8   € Ü
�‹)ˆØ×Ñ˜Ÿ™ a¨¯©Ô1Ü�z‰z˜!Ÿ(™(Ó#Ð#r   c                 óP   — | j                  t        ||«      j                  d«       y rE   )ÚassertNotEqualr1   rG   )r;   rJ   r$   s      r   ÚbadzTestWireBridge.bad   s   €  $×"5Ñ"5´f¸Q¸vÓ6F×6QÑ6QÐRSÕ"Tr   c                 ój   — | j                  | j                  | j                  d«      «      d   d«       y )Nr5   Ú	operation©rF   rL   r   r:   s    r   Útest_headerzTestWireBridge.test_header   s)   € ˜$×*Ñ*¨4¯9©9°T·\±\À(Ó5KÓ+LÈ[Ñ+YÐZbÕcr   c                 ój   — | j                  | j                  | j                  d«      «      d   d«       y )Nr7   rQ   rR   r:   s    r   Ú
test_chunkzTestWireBridge.test_chunk   s)   € ˜×)Ñ)¨$¯)©)°D·L±LÀÓ4IÓ*JÈ;Ñ*WÐX_Õ`r   c                 ój   — | j                  | j                  | j                  d«      «      d   d«       y )Nr8   rQ   rR   r:   s    r   Útest_finalizezTestWireBridge.test_finalize   s*   € ˜D×,Ñ,¨T¯Y©Y°t·|±|ÀJÓ7OÓ-PÐQ\Ñ-]Ð^hÕir   c                 ó~   — | j                  | j                  | j                  d«      «      d   | j                  «       y )Nr7   Úcatalog_request)rF   rL   r   r7   r:   s    r   Útest_preserve_catalog_requestz,TestWireBridge.test_preserve_catalog_request   s1   € ¨D×,<Ñ,<¸T¿Y¹YÀtÇ|Á|ÐT[ÓG\Ó=]Ð^oÑ=pÐqu×q{Ñq{Õ,|r   c                 óF   — | j                  | j                  d«      d«       y )Nr5   ú$00000000-0000-4000-8000-000000000001)rO   r   r:   s    r   Ú$test_authenticated_identity_mismatchz3TestWireBridge.test_authenticated_identity_mismatch   s   € °4·8±8¸D¿L¹LÈÓ<RÐSyÕ3zr   c                 óR   — | j                  d«      }d|d<   | j                  |«       y )Nr5   r\   r   ©r   rO   ©r;   Úxs     r   Útest_envelope_vessel_mismatchz,TestWireBridge.test_envelope_vessel_mismatch    s(   € Ø
�,‰,�xÓ
 ˆÐ0V  ;¡ÐW[×W_ÑW_Ð`aÕWbr   c                 ó¾   — | j                  d«      }t        j                  |d   «      }d|d   d<   t        |d|d   | j                  «      }| j                  |«       y )Nr5   r   r\   r   r   r   ©r   r   r   r&   r9   rO   ©r;   ra   rK   s      r   Útest_payload_vessel_mismatchz+TestWireBridge.test_payload_vessel_mismatch"   s¤   € Ø
�,‰,�xÓ
 ˆ¤4§:¡:¨a°Ñ.?Ó#@ ð  [AÀÀ8ÁÈ[ÑAYô  EHð  IJð  KLð  MNð  O\ñ  M]ð  ^b÷  ^fñ  ^fó  Egð  CDð  hl÷  hpñ  hpð  qrõ  hsr   c                 ób   — | j                  d«      }|dxx   dz  cc<   | j                  |«       y )Nr5   r   ú r_   r`   s     r   Útest_tampered_digestz#TestWireBridge.test_tampered_digest$   s)   € Ø
�,‰,�xÓ
 ˆ  >Ó!2°CÑ!7Ó!2¸¿¹À½r   c                 óR   — | j                  d«      }d|d<   | j                  |«       y )Nr5   r@   r   r_   r`   s     r   Útest_entity_type_mismatchz(TestWireBridge.test_entity_type_mismatch&   s%   € Ø
�,‰,�xÓ
 ˆÐ2L  =Ñ!1ÈTÏXÉXÐVWÍ[r   c                 óR   — | j                  d«      }d|d<   | j                  |«       y )Nr7   Úfaker   r_   r`   s     r   Útest_entity_key_mismatchz'TestWireBridge.test_entity_key_mismatch(   s"   € Ø
�,‰,�wÓ
ˆ°  ,¡°t·x±xÀµ{r   c                 óR   — | j                  d«      }d|d<   | j                  |«       y )Nr7   r?   r   r_   r`   s     r   Útest_revision_mismatchz%TestWireBridge.test_revision_mismatch*   s$   € Ø
�,‰,�wÓ
ˆ°Q Ð"3Ñ 4°t·x±xÀµ{r   c                 ó¾   — | j                  d«      }t        j                  |d   «      }d|d   d<   t        |d|d   | j                  «      }| j                  |«       y )Nr5   r   rO   Úprotocolr   r   rd   re   s      r   Útest_wrong_protocolz"TestWireBridge.test_wrong_protocol,   s€   € Ø
�,‰,�xÓ
 ˆ¤4§:¡:¨a°Ñ.?Ó#@ ÐY^ÀÀ8ÁÈZÑAXÔadÐefÐghÐijÐkxÑiyÐz~÷  {Cñ  {Có  bDÐ_`ð  EI÷  EMñ  EMð  NOõ  EPr   c                 óR   — | j                  d«      }d|d<   | j                  |«       y )Nr5   Úmeasurement_aggregater   r_   r`   s     r   Útest_non_v2_rejectedz#TestWireBridge.test_non_v2_rejected.   s%   € Ø
�,‰,�xÓ
 ˆÐ2I  =Ñ!1È$Ï(É(ÐSTÍ+r   c                 óR   — | j                  d«      }d|d<   | j                  |«       y )Nr5   ra   Úunknownr_   r`   s     r   Útest_extra_envelope_fieldsz)TestWireBridge.test_extra_envelope_fields0   s"   € Ø
�,‰,�xÓ
 ˆ¨c  9¡°$·(±(¸1µ+r   c                 óR   — | j                  d«      }d|d<   | j                  |«       y )Nr5   r   r   r_   r`   s     r   Útest_invalid_seqzTestWireBridge.test_invalid_seq2   s"   € Ø
�,‰,�xÓ
 ˆ¨Q  8¡¨t¯x©x¸­{r   c                 óÄ   — | j                  d«      }t        j                  |d   «      }d|d   d<   t        |d|d   | j                  dz   «      }| j                  |«       y )Nr7   r   éÿÿÿÿÚchunk_indexr?   r   z:-1rd   re   s      r   Útest_invalid_chunk_indexz'TestWireBridge.test_invalid_chunk_index4   sŽ   € Ø
�,‰,�wÓ
ˆ¤$§*¡*¨Q¨~Ñ->Ó"? ÐZ\ÀÀ'Á
È=Ñ@YÔ_bÐcdÐefÐghÐivÑgwÐx|÷  yAñ  yAð  BGñ  yGó  `HÐ]^ð  IM÷  IQñ  IQð  RSõ  ITr   c                 óÆ   — | j                  d«      }ddz  |d<   t        j                  |d   j                  «       «      j	                  «       |d<   | j                  |«       y )Nr5   Úai }  r   r   )r   r   r   r   r   rO   r`   s     r   Útest_exceeds_maximumz#TestWireBridge.test_exceeds_maximum6   sw   € Ø
�,‰,�xÓ
 ˆ°3°u±9  >Ñ!2ÌwÏ~É~Ð^_Ð`nÑ^o×^vÑ^vÓ^xÓOy÷  PDñ  PDó  PF¸Q¸~Ñ=Nð  GK÷  GOñ  GOð  PQõ  GRr   c                 óx   — | j                  d«      }d|d<   | j                  | j                  |«      d   d«       y )Nr8   iç  r   )r   rF   rL   r`   s     r   Ú#test_finalize_revision_not_provablez2TestWireBridge.test_finalize_revision_not_provable8   s;   € ð �,‰,�zÓ
"ˆ¸ 1Ð%6Ñ#7¸D×<LÑ<LÈTÏYÉYÐWXË\ÐZkÑMlÐmpÕ<qr   N)Ú__name__Ú
__module__Ú__qualname__r<   r   rL   ÚVESSELrO   rS   rU   rW   rZ   r]   rb   rf   ri   rk   rn   rp   rs   rv   ry   r{   r   r‚   r„   © r   r   r3   r3      su   „ ò6ò
Kò$ð !ÓTÚcÚ`ÚiÚ|ÚzòcòsòDòYòCòCòPòVò>ò;òTòRórr   r3   Ú__main__)Úcopyr   r   Úpathlibr,   ÚunittestÚPathÚ__file__ÚresolveÚparentsr   r/   rˆ   r   r&   r1   ÚTestCaser3   r…   Úmainr‰   r   r   ú<module>r”      s‡   ðß 9× 9× 9Ø€W‡\�\�(Ó×#Ñ#Ó%×-Ñ-¨aÑ0€ØÐ2Ñ2€Ø-€â HØ&'°ó uð ó Dô/r�X×&Ñ&ô /rð` ˆZÒ˜˜Ÿ™�Ðr   