Ë
    Žüéj	  ã                   óx  — d dl Zd dlZd dlZd dlZd dlmZ  ee«      j                  «       j                  d   Z
ej                  j                  de
dz  «      Zej                  j                  e«      Zej                   j#                  e«        G d„ dej$                  «      Zedk(  r ej*                  «        yy)	é    N)ÚPathé   Úcatalog_codeczprotocol/catalog_v2.pyc                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚContractTestsc                 ó  — t         dz  d|› �z  }t        j                  |dz  j                  «       «      d   }t	        |j                  d«      «      D �cg c](  }t        j                  |j                  «       «      d   ‘Œ* }}||fS c c}w )NÚfixturesz	revision-zheader.jsonÚheaderzchunk-*.jsonÚchunk)ÚROOTÚjsonÚloadsÚ	read_textÚsortedÚglob)ÚselfÚrevisionÚ	directoryr
   ÚpÚchunkss         útests/test_receiver_contract.pyr	   zContractTests.fixtures   s   € Ü˜:Ñ%¨)°H°:Ð(>Ñ>ˆ	Ü—‘˜Y¨Ñ6×AÑAÓCÓDÀXÑNˆÜ>DÀYÇ^Á^ÐTbÓEcÓ>dÖe¸”$—*‘*˜QŸ[™[›]Ó+¨GÓ4ÐeˆÐeØ�vˆ~Ðùò fs   Á-Bc           	      óÀ   — | j                  d«      \  }}t        j                  ||«      }| j                  d|D �cg c]  }|j	                  d«      ‘Œ c}«       y c c}w )Nr   z$custom.sensors.vendorNew.temperatureÚpath)r	   ÚcodecÚreconstructÚassertInÚget)r   r
   r   ÚdataÚrs        r   Útest_unknown_measurementsz'ContractTests.test_unknown_measurements   sM   € ØŸ™ qÓ)‰ˆ�Ü× Ñ  ¨Ó0ˆØ�‰Ð<ÐVZÖ>[ÐQR¸q¿u¹uÀV½}Ò>[Õ\ùÒ>[s   »A
c                 ó®   — | j                  d«      \  }}| j                  t        t        j	                  |t        t        |«      «      «      «      d«       y )Né   i!  )r	   ÚassertEqualÚlenr   r   ÚlistÚreversed©r   r
   r   s      r   Útest_800_records_and_reorderingz-ContractTests.test_800_records_and_reordering   sA   € ØŸ™ qÓ)‰ˆ�Ø×ÑœœU×.Ñ.¨v´t¼HÀVÓ<LÓ7MÓNÓOÐQTÕUó    c                 ó´   — | j                  d«      \  }}| j                  t        d«      5  t        j	                  ||d d «       d d d «       y # 1 sw Y   y xY w)Nr"   Ú
incompleteéÿÿÿÿ)r	   ÚassertRaisesRegexÚ
ValueErrorr   r   r'   s      r   Ú!test_incomplete_does_not_validatez/ContractTests.test_incomplete_does_not_validate   sO   € ØŸ™ qÓ)‰ˆ�Ø×#Ñ#¤J°Ó=ñ 	3Ü×Ñ˜f f¨S¨b kÔ2÷	3÷ 	3ñ 	3ús   «AÁAc                 ó  — | j                  d«      \  }}t        j                  t        j                  |«      «      }d|d   d   d   d<   | j	                  t
        «      5  t        j                  ||«       d d d «       y # 1 sw Y   y xY w)Nr   Útamperedr   Úrecordsr   )r	   r   r   ÚdumpsÚassertRaisesr.   r   r   )r   r
   r   Úaltereds       r   Útest_hash_integrityz!ContractTests.test_hash_integrity"   sv   € ØŸ™ qÓ)‰ˆ�Ü—*‘*œTŸZ™Z¨Ó/Ó0ˆØ+5ˆ�‰
�9Ñ˜aÑ  Ñ(Ø×ÑœzÓ*ñ 	/Ü×Ñ˜f gÔ.÷	/÷ 	/ñ 	/ús   Á B Â B	c           	      ó  — dD ]„  }| j                  |«      \  }}|D ]i  }d|d   i}t        j                  dt        t        dz  «      gt        j                  |d¬«      ddd¬«      }| j                  |j                  |d	   «       Œk Œ† y )
N)r   r"   r2   Úphpztests/canonical_fixture.phpF)Úensure_asciiT)ÚinputÚcapture_outputÚtextÚcheckÚpayload_sha256)	r	   Ú
subprocessÚrunÚstrr   r   r3   r#   Ústdout)r   r   Ú_r   r   ÚbodyÚprocs          r   Ú test_php_python_canonical_hashesz.ContractTests.test_php_python_canonical_hashes)   s˜   € Øò 	GˆHØŸ™ hÓ/‰IˆAˆvØò G�Ø! 5¨Ñ#3Ð4�Ü!—~‘~ØœC¤Ð'DÑ DÓEÐFÜŸ*™* T¸Ô>Ø#'¨d¸$ô@�ð × Ñ  §¡¨eÐ4DÑ.EÕFñGñ	Gr)   c                 óž   — t         dz  j                  «       }| j                  d|«       | j                  d|«       | j                  d|«       y )Nz(receiver/ym-catalog-v2-test-receiver.phpz-const DB_NAME = 'yachtmemory_catalog_v2_test'zPHP_SAPI !== 'cli'zdbname=yachtmemory_telemetry)r   r   r   ÚassertNotIn)r   Úss     r   Ú+test_receiver_hardwired_test_schema_and_cliz9ContractTests.test_receiver_hardwired_test_schema_and_cli4   sE   € ÜÐ>Ñ>×IÑIÓKˆØ�‰ÐEÀqÔIØ�‰Ð*¨AÔ.Ø×ÑÐ7¸Õ;r)   N)
Ú__name__Ú
__module__Ú__qualname__r	   r    r(   r/   r6   rF   rJ   © r)   r   r   r      s(   „ òò]ò
Vò3ò
/ò	Gó<r)   r   Ú__main__)Úimportlib.utilÚ	importlibr   r?   ÚunittestÚpathlibr   Ú__file__ÚresolveÚparentsr   ÚutilÚspec_from_file_locationÚspecÚmodule_from_specr   ÚloaderÚexec_moduleÚTestCaser   rK   ÚmainrN   r)   r   ú<module>r_      s    ðÛ Û Û Û Ý áˆHƒ~×ÑÓ×'Ñ'¨Ñ*€Ø‡~�~×-Ñ-¨o¸tÐF^Ñ?^Ó_€Ø�‰×'Ñ'¨Ó-€Ø ‡�× Ñ ˜Ô ô+<�H×%Ñ%ô +<ð\ ˆzÒØ€H‡M�M…Oð r)   