id$dZddlmZmZmZddlmZddlmZm Z m Z ddl m Z m Z ddlmZddlmZddlmZdd lZdd lZdd lZd ZGd d eZd S) z/Test everything about packs reading and writing)TestBasewith_rw_directory fixture_path)DeltaApplyReader) PackEntity PackIndexFilePackFile)OInfoOStream) delta_types)UnsupportedOperation) to_bin_shaNcttjtj|dddS)Nr)rospathsplitextbasename)filenames I/opt/cloudlinux/venv/lib/python3.11/site-packages/gitdb/test/test_pack.pybin_sha_from_filenamer$s> bg&&rw'7'7'A'ABB1EabbI J JJceZdZedddfZedddfZedddfZed dedfZed dedfZed dedfZ d Z d Z dZ dZ edZdZdS)TestPackz7packs/pack-c0438c19fb16422b6bbcce24387b3264416d485b.idxCz7packs/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.idxz7packs/pack-a2bf8e71d8c18879e499335762dd95119d93d9f1.idx*z8packs/pack-c0438c19fb16422b6bbcce24387b3264416d485b.packz8packs/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.packz8packs/pack-a2bf8e71d8c18879e499335762dd95119d93d9f1.packct|D]1}||}||}dD]}2|t |jdddS)N) r)rangesizeshaentry assertRaises ValueErrorpartial_sha_to_index)selfindexversionr(oidxr)r*ls r_assert_index_filezTestPack._assert_index_file3s%**,,'' J JD))D//CKK%%E( J J J *e&@$JJJJJrc|d}|D]}|dz }||j}||j}||j} t j|} n#t$rYwwxYw| } | ddS)Nrr) stream_iterinfo pack_offsetstreamcollect_streamsrnewr,readseek) r.packr0r(num_objobjr6r8streamsdstreamdatas r_assert_pack_filezTestPack._assert_pack_fileNs ##%% * *C qLG99S_--D[[11F**3?;;G *.w77     <<>>D LLOOOO= * *s-B BBc||j|jfD],\}}}t|}||||-dSN)packindexfile_v1packindexfile_v2rr3)r. indexfiler0r(r/s rtest_pack_indexzTestPack.test_pack_index|sU)-)>@U(V : : $Iw!),,E  # #E7D 9 9 9 9 : :rc|j|j|jfD],\}}}t|}||||-dSrE)packfile_v2_3_ascii packfile_v2_1 packfile_v2_2r rC)r.packfiler0r(r=s r test_packzTestPack.test_packs[(,(@$BTVZVh'i 8 8 #HgtH%%D  " "4$ 7 7 7 7 8 8rcft|j|jf|j|jf|j|jffD]\}}|\}}}|\}}}t|}| d} t| | D]N\} } | dz } | | j } || j } ?#t$rYKwxYwt!jdd|}t!jdd|}t!jdd|}d}fd}t||f|dft%dfD]\}}}d}|rt'|d}|j}|dkr ||dz }t'|d5}tj|j|| \}}dddn #1swxYwYt-|}||7|t1|}||tj|}d} | D]} | dz } t5d D]}|dS) Nrrpack1pack2r/cFD]}|jddS)Nr)r8r<)r? pack_objss rrewind_streamsz1TestPack.test_pack_entity..rewind_streamss3  # # """" # #rwb) object_countr)listrLrFrMrGrKpackindexfile_v2_3_asciirextendr5zip info_iterr6binshar8r tempfilemktemplenopenwrite write_packr closercreater')r.rw_dirpackinfo indexinforNr0r(rHentitycountr6r8oinfoostream pack_path1 pack_path2 index_path iterationrVppathipathr>iwriteifilepfilepack_sha index_shapfidxuse_crcrUs @rtest_pack_entityzTestPack.test_pack_entityssFF %)%79N$O%)%79N$O%)%=t?\$]$_& !& ! Hi'/ #Hgt'0 $Iw))F   V//11 2 2 2E #F$4$4$6$68J8J8L8L M M J J f  DK00!-- 44 +D- JB_R&99 _R&99 _R&99   # # # # #&)*j)A*4d);*-i..$)?&A&A# #  !E5'F %UD))1}}   NIeT"" re&0&;Iu{TZip&q&q&q#) r r r r r r r r r r r r r r r %B HHJJJ  #E**  "9f55$$&& D DD QJE 88 D D D  s5 DD9!G&&G* -G* c.tjddS)Nznot implemented)pytestskip)r.s r test_pack_64zTestPack.test_pack_64s  %&&&&&rN)__name__ __module__ __qualname__rrFrGrZrLrMrKr3rCrIrOrr|rrrrr)s2$ %^__abdfg$ %^__abdfg , -f g gijlno!\"\]]_`brstbuvM!\"\]]_`brstbuvM OPPRSUmnoUprKKK6,,,\:::888iiiV'''''rr)__doc__gitdb.test.librrr gitdb.streamr gitdb.packrrr gitdb.baser r gitdb.funr gitdb.excr gitdb.utilrr~rr_rrrrrrsP 65 *)))))  "!!!!!******!!!!!! KKK P'P'P'P'P'xP'P'P'P'P'r