Ë
    ómxi$  ã                   ó¤   — d Z ddlmZmZmZ ddlmZ ddlmZm	Z	m
Z
 ddlmZmZ ddlmZ ddlmZ ddlmZ dd	lZdd	lZdd	lZd
„ Z G d„ de«      Zy	)z/Test everything about packs reading and writingé    )ÚTestBaseÚwith_rw_directoryÚfixture_path)ÚDeltaApplyReader)Ú
PackEntityÚPackIndexFileÚPackFile)ÚOInfoÚOStream)Údelta_types)ÚUnsupportedOperation)Ú
to_bin_shaNc                 ó˜   — t        t        j                  j                  t        j                  j	                  | «      «      d   dd  «      S )Nr   é   )r   ÚosÚpathÚsplitextÚbasename)Úfilenames    úK/home/htdocs/ttos/venv/lib/python3.12/site-packages/gitdb/test/test_pack.pyÚbin_sha_from_filenamer   $   s7   € Ü”b—g‘g×&Ñ&¤r§w¡w×'7Ñ'7¸Ó'AÓBÀ1ÑEÀaÀbÐIÓJÐJó    c                   óÐ   — e Zd Z ed«      ddfZ ed«      ddfZ ed«      ddfZ ed	«      ded   fZ ed
«      ded   fZ ed«      ded   fZ	d„ Z
d„ Zd„ Zd„ Zed„ «       Zd„ Zy)ÚTestPackz7packs/pack-c0438c19fb16422b6bbcce24387b3264416d485b.idxé   éC   z7packs/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.idxé   é   z7packs/pack-a2bf8e71d8c18879e499335762dd95119d93d9f1.idxé*   z8packs/pack-c0438c19fb16422b6bbcce24387b3264416d485b.packz8packs/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.packz8packs/pack-a2bf8e71d8c18879e499335762dd95119d93d9f1.packc                 ó"  — |j                  «       |j                  «       k7  sJ ‚t        |j                  «       «      dk(  sJ ‚t        |j                  «       «      dk(  sJ ‚|j                  «       |k(  sJ ‚|j	                  «       |k(  sJ ‚t        |j                  «       «      |k(  sJ ‚t        |j	                  «       «      D ]ª  }|j                  |«      }||j                  |«      k(  sJ ‚|j                  |«      }t        |«      dk(  sJ ‚|d   |j                  |«      k(  sJ ‚|d   |k(  sJ ‚|d   |j                  |«      k(  sJ ‚dD ]  }|j                  |d | |dz  «      |k(  rŒJ ‚ Œ¬ | j                  t        |j                  dd«       y )Né   é   r   r   r   )é   é   é   é   r!   ú )Úpackfile_checksumÚindexfile_checksumÚlenÚversionÚsizeÚoffsetsÚrangeÚshaÚsha_to_indexÚentryÚoffsetÚcrcÚpartial_sha_to_indexÚassertRaisesÚ
ValueError)ÚselfÚindexr+   r,   Úoidxr/   r1   Úls           r   Ú_assert_index_filezTestPack._assert_index_file3   s–  € Ø×&Ñ&Ó(¨E×,DÑ,DÓ,FÒFÐFÐFÜ�5×*Ñ*Ó,Ó-°Ò3Ð3Ð3Ü�5×+Ñ+Ó-Ó.°"Ò4Ð4Ð4Ø�}‰}‹ 'Ò)Ð)Ð)Ø�z‰z‹|˜tÒ#Ð#Ð#Ü�5—=‘=“?Ó# tÒ+Ð+Ð+ô ˜%Ÿ*™*›,Ó'ò 	JˆDØ—)‘)˜D“/ˆCØ˜5×-Ñ-¨cÓ2Ò2Ð2Ð2à—K‘K Ó%ˆEÜ�u“: ’?Ð"�?à˜‘8˜uŸ|™|¨DÓ1Ò1Ð1Ð1Ø˜‘8˜s’?Ð"�?Ø˜‘8˜uŸy™y¨›Ò.Ð.Ð.ð (ò J�Ø×1Ñ1°#°b°q°'¸1¸q¹5ÓAÀTÓIÐIÐIñJð	Jð  	×Ñœ* e×&@Ñ&@À$ÈÕJr   c                 óB  — |j                  «       dk(  sJ ‚|j                  «       |k(  sJ ‚t        |j                  «       «      dk(  sJ ‚d}|j	                  «       D �]*  }|dz  }|j                  |j                  «      }|j                  |j                  «      }|j                  |j                  k(  sJ ‚|j                  |j                  k(  sJ ‚t        |d«      sJ ‚|j                  «       |j                  «       k(  sJ ‚|j                  |j                  «      }|sJ ‚	 t        j                  |«      }	|	j                  «       }
t        |
«      |	j                  k(  sJ ‚|	j                  d«       |	j                  «       |
k(  r�Œ+J ‚ ||k(  sJ ‚y # t        $ r Y �ŒBw xY w)Nr   r!   r   r   Úread)r+   r,   r*   ÚchecksumÚstream_iterÚinfoÚpack_offsetÚstreamÚtype_idÚhasattrr=   Úcollect_streamsr   Únewr6   Úseek)r7   Úpackr+   r,   Únum_objÚobjr@   rB   ÚstreamsÚdstreamÚdatas              r   Ú_assert_pack_filezTestPack._assert_pack_fileN   s‚  € Ø�|‰|‹~ Ò"Ð"Ð"Ø�y‰y‹{˜dÒ"Ð"Ð"Ü�4—=‘=“?Ó# rÒ)Ð)Ð)àˆØ×#Ñ#Ó%ó 	*ˆCØ�q‰LˆGØ—9‘9˜SŸ_™_Ó-ˆDØ—[‘[ §¡Ó1ˆFà×#Ñ# v×'9Ñ'9Ò9Ð9Ð9Ø—<‘< 6§>¡>Ò1Ð1Ð1Ü˜6 6Ô*Ð*Ð*ð —8‘8“: §¡£Ò.Ð.Ð.à×*Ñ*¨3¯?©?Ó;ˆGÙˆN�7ðÜ*×.Ñ.¨wÓ7�ð —<‘<“>ˆDÜ�t“9 §¡Ò,Ð,Ð,ð �L‰L˜ŒOØ—<‘<“> TÔ)Ð)Ð)ð?	*ðL ˜$ŠÐ‰øô) ò ò ð	ús   Ä!FÆ	FÆFc                 ó‚   — | j                   | j                  fD ]$  \  }}}t        |«      }| j                  |||«       Œ& y ©N)Úpackindexfile_v1Úpackindexfile_v2r   r;   )r7   Ú	indexfiler+   r,   r8   s        r   Útest_pack_indexzTestPack.test_pack_index|   sE   € à)-×)>Ñ)>À×@UÑ@UÐ(Vò 	:Ñ$ˆI�w Ü! )Ó,ˆEØ×#Ñ# E¨7°DÕ9ñ	:r   c                 ó˜   — | j                   | j                  | j                  fD ]$  \  }}}t        |«      }| j	                  |||«       Œ& y rP   )Úpackfile_v2_3_asciiÚpackfile_v2_1Úpackfile_v2_2r	   rN   )r7   Úpackfiler+   r,   rH   s        r   Ú	test_packzTestPack.test_packƒ   sN   € à(,×(@Ñ(@À$×BTÑBTÐVZ×VhÑVhÐ'iò 	8Ñ#ˆH�g˜tÜ˜HÓ%ˆDØ×"Ñ" 4¨°$Õ7ñ	8r   c                 óŽ
  ‡— t        «       Š| j                  | j                  f| j                  | j                  f| j
                  | j                  ffD �]  \  }}|\  }}}|\  }}}t        |«      }|j                  «       j                  «       |k(  sJ ‚|j                  «       j                  «       |k(  sJ ‚‰j                  |j                  «       «       d}	t        |j                  «       |j                  «       «      D �]f  \  }
}|	dz  }	|
j                  |j                  k(  sJ ‚t!        |
j                  «      dk(  sJ ‚|
j"                  |j"                  k(  sJ ‚|
j$                  |j$                  k(  sJ ‚|
j"                  t&        vsJ ‚t!        |j)                  |
j                  «      «      sJ ‚|j+                  |
j                  «      }t-        |t.        «      sJ ‚|j                  €J ‚|j1                  |
j                  «      }t-        |t2        «      sJ ‚|j                  €J ‚	 |j5                  |
j                  d¬«      sJ ‚	 |j5                  |
j                  d¬«      r�ŒgJ ‚ |	|k(  r�ŒJ ‚ t9        j:                  dd|«      }t9        j:                  dd	|«      }t9        j:                  dd
|«      }d}ˆfd„}t        ||f|d ft!        ‰«      d f«      D �]Â  \  }}}d }|rt=        |d«      }|j>                  }|dkD  r |«        |dz  }t=        |d«      5 }t        j@                  ‰|j>                  ||¬«      \  }}d d d «       tB        j                  jE                  |«      dkD  sJ ‚tG        |«      }|j%                  «       t!        ‰«      k(  sJ ‚|jI                  «       tF        jJ                  k(  sJ ‚|jM                  «       k(  sJ ‚|jO                  «        |€�Œ	jO                  «        tB        j                  jE                  |«      dkD  sJ ‚tQ        |«      }|jI                  «       tP        jR                  k(  sJ ‚|jU                  «       |k(  sJ ‚|jW                  «       k(  sJ ‚|j%                  «       t!        ‰«      k(  sJ ‚|jO                  «        �ŒÅ  |«        t        jX                  ‰|«      }d}	|j                  «       D ]5  }
|	dz  }	t[        d«      D ]   }|j5                  |
j                  |«      rŒ J ‚ Œ7 |	t!        ‰«      k(  sJ ‚|jO                  «        y # t6        $ r Y �Œîw xY w# 1 sw Y   �ŒøxY w)Nr   r   r!   T)Úuse_crcFÚ Úpack1Úpack2r8   c                  óJ   •— ‰D ]  } | j                   j                  d«       Œ y )Nr   )rB   rG   )rJ   Ú	pack_objss    €r   Úrewind_streamsz1TestPack.test_pack_entity.<locals>.rewind_streams¾   s"   ø€ Ø ò #�Ø—
‘
—‘ Õ"ñ#r   Úwb)Úobject_countéd   r   ).ÚlistrW   rQ   rX   rR   rV   Úpackindexfile_v2_3_asciir   rH   r   r8   Úextendr?   ÚzipÚ	info_iterÚbinshar*   rC   r,   r   rE   r@   Ú
isinstancer
   rB   r   Úis_valid_streamr   ÚtempfileÚmktempÚopenÚwriteÚ
write_packr   Úgetsizer	   r+   Úpack_version_defaultr>   Úcloser   Úindex_version_defaultr(   r)   Úcreater.   )r7   Úrw_dirÚpackinfoÚ	indexinforY   r+   r,   rS   ÚentityÚcountr@   rB   ÚoinfoÚostreamÚ
pack_path1Ú
pack_path2Ú
index_pathÚ	iterationrb   ÚppathÚipathrI   ÚiwriteÚifileÚpfileÚpack_shaÚ	index_shaÚpfÚidxr\   ra   s                                 @r   Útest_pack_entityzTestPack.test_pack_entityŠ   s  ø€ ä“Fˆ	Ø%)×%7Ñ%7¸×9NÑ9NÐ$OØ%)×%7Ñ%7¸×9NÑ9NÐ$OØ%)×%=Ñ%=¸t×?\Ñ?\Ð$]ð$_ó &	!ÑˆH�ið '/Ñ#ˆH�g˜tØ'0Ñ$ˆI�w Ü Ó)ˆFØ—;‘;“=×%Ñ%Ó'¨8Ò3Ð3Ð3Ø—<‘<“>×&Ñ&Ó(¨IÒ5Ð5Ð5Ø×Ñ˜V×/Ñ/Ó1Ô2àˆEÜ # F×$4Ñ$4Ó$6¸×8JÑ8JÓ8LÓ Mó J‘��fØ˜‘
�Ø—{‘{ f§m¡mÒ3Ð3Ð3Ü˜4Ÿ;™;Ó'¨2Ò-Ð-Ð-Ø—|‘| v§~¡~Ò5Ð5Ð5Ø—y‘y F§K¡KÒ/Ð/Ð/ð  Ÿ<™<¬;Ñ6Ð6Ð6ô ˜6×1Ñ1°$·+±+Ó>Ô?Ð?Ð?ØŸ™ D§K¡KÓ0�Ü! %¬Ô/Ð/Ð/Ø—|‘|Ð/Ð/Ð/Ø Ÿ-™-¨¯©Ó4�Ü! '¬7Ô3Ð3Ð3Ø—~‘~Ð1Ð1Ð1ðØ!×1Ñ1°$·+±+ÀtÐ1ÔLÐLÑLð ×-Ñ-¨d¯k©kÀ5Ð-ÖIÐIÐIð3Jð6 ˜D”=Ð �=ðM&	!ôX —_‘_ R¨°&Ó9ˆ
Ü—_‘_ R¨°&Ó9ˆ
Ü—_‘_ R¨°&Ó9ˆ
Øˆ	ô	#ô &)¨*°jÐ)AØ*4°dÐ);Ü*-¨i«.¸$Ð)?ó&Aó #	Ñ!ˆE�5˜'ð ˆFÙÜ˜U DÓ)�ØŸ™�ð ˜1Š}ÙÔ à˜‰NˆIä�e˜TÓ"ð r eÜ&0×&;Ñ&;¸IÀuÇ{Á{ÐTZÐipÔ&qÑ#�˜)÷rä—7‘7—?‘? 5Ó)¨CÒ/Ð/Ð/ô ˜%“ˆBØ—7‘7“9¤ I£Ò.Ð.Ð.Ø—:‘:“<¤8×#@Ñ#@Ò@Ð@Ð@Ø—;‘;“= HÒ,Ð,Ð,Ø�H‰HŒJð Ò Ø—‘”Ü—w‘w—‘ uÓ-°Ò3Ð3Ð3Ü# EÓ*�Ø—{‘{“}¬×(KÑ(KÒKÐKÐKØ×,Ñ,Ó.°(Ò:Ð:Ð:Ø×-Ñ-Ó/°9Ò<Ð<Ð<Ø—x‘x“z¤S¨£^Ò3Ð3Ð3Ø—	‘	–ðG#	ñP 	ÔÜ×"Ñ" 9¨fÓ5ˆØˆØ×$Ñ$Ó&ò 	DˆDØ�Q‰JˆEÜ  ›8ò D�Ø×-Ñ-¨d¯k©k¸7ÕCÐCÐCñDð	Dð œ˜I›Ò&Ð&Ð&Ø�‰�øôM ,ò Úðú÷Frñ rús   È(T*Ì'T:Ô*	T7Ô6T7Ô:U	c                 ó.   — t        j                  d«       y )Nznot implemented)ÚpytestÚskip)r7   s    r   Útest_pack_64zTestPack.test_pack_64ö   s   € ô 	�‰Ð%Õ&r   N)Ú__name__Ú
__module__Ú__qualname__r   rQ   rR   rg   rW   rX   rV   r;   rN   rT   rZ   r   rŒ   r�   © r   r   r   r   )   sÅ   „ á$Ð%^Ó_ÐabÐdfÐgÐÙ$Ð%^Ó_ÐabÐdfÐgÐÙ ,Ð-fÓ gÐijÐlnÐoÐÙ!Ð"\Ó]Ð_`ÐbrÐstÑbuÐv€MÙ!Ð"\Ó]Ð_`ÐbrÐstÑbuÐv€MáÐOÓPÐRSÐUmÐnoÑUpðrÐòKò6,ò\:ò8ð ñió ðióV'r   r   )Ú__doc__Úgitdb.test.libr   r   r   Úgitdb.streamr   Ú
gitdb.packr   r   r	   Ú
gitdb.baser
   r   Ú	gitdb.funr   Ú	gitdb.excr   Ú
gitdb.utilr   rŽ   r   rn   r   r   r”   r   r   ú<module>r�      sP   ðñ
 6÷ñ õ *÷ñ ÷õ
 "Ý *Ý !ã ã 	Û òKô
P'ˆxõ P'r   