bg$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 e/builddir/build/BUILD/cloudlinux-venv-1.0.7/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.packc||ksJt|dksJt|dksJ||ksJ||ksJt||ksJt |D]}||}|||ksJ| |}t|dksJ|d| |ksJ|d|ksJ|d| |ksJdD])}| |d||dz|ksJ*| t|j dddS)Nrrr) r!)packfile_checksumindexfile_checksumlenversionsizeoffsetsrangesha sha_to_indexentryoffsetcrcpartial_sha_to_index assertRaises ValueError)selfindexr+r,oidxr/r1ls r_assert_index_filezTestPack._assert_index_file3s&&((E,D,D,F,FFFFF5**,,--33335++--.."4444}}'))))zz||t####5==??##t++++%**,,'' J JD))D//C5--c222222KK%%Eu::????8u||D1111118s????8uyy....( J J11#bqb'1q5AATIIIII J *e&@$JJJJJrcz|dksJ||ksJt|dksJd}|D]?}|dz }||j}||j}|j|jksJ|j|jksJt|dsJ| | ksJ| |j}|sJ tj |} n#t$rYwxYw| } t| | jksJ| d| | ksJA||ksJdS)Nrr!rrread)r+r,r*checksum stream_iterinfo pack_offsetstreamtype_idhasattrr=collect_streamsrnewr6seek) r7packr+r,num_objobjr@rBstreamsdstreamdatas r_assert_pack_filezTestPack._assert_pack_fileNs||~~""""yy{{d""""4==??##r))))##%% * *C qLG99S_--D[[11F#v'99999<6>111166** * **88::....**3?;;GNN7 *.w77     <<>>Dt99 ,,,, LLOOO<<>>T)))))$s/E EEc||j|jfD],\}}}t|}||||-dSN)packindexfile_v1packindexfile_v2rr;)r7 indexfiler+r,r8s rtest_pack_indexzTestPack.test_pack_index|sU)-)>@U(V : : $Iw!),,E  # #E7D 9 9 9 9 : :rc|j|j|jfD],\}}}t|}||||-dSrP)packfile_v2_3_ascii packfile_v2_1 packfile_v2_2r rN)r7packfiler+r,rHs r test_packzTestPack.test_packs[(,(@$BTVZVh'i 8 8 #HgtH%%D  " "4$ 7 7 7 7 8 8rc t|j|jf|j|jf|j|jffD]6\}}|\}}}|\}}}t|}| |ksJ| |ksJ | d} t|| D]V\} } | dz } | j| jksJt!| jdksJ| j| jksJ| j| jksJ| jt&vsJt!|| jsJ|| j} t-| t.sJ| jJ|| j} t-| t2sJ| jJ || jdsJn#t6$rYnwxYw|| jdsJX| |ksJ8t9jdd|}t9jdd |}t9jdd |}d}fd }t||f|dft!dfD] \}}}d}|rt=|d }|j}|dkr ||dz }t=|d 5}tj |j|| \}}dddn #1swxYwYtBj "|dksJtG|}|t!ksJ|$tFj%ksJ|&|ksJ|'||'tBj "|dksJtQ|}|$tPj)ksJ|*|ksJ|+|ksJ|t!ksJ|' |tj,|}d} |D]6} | dz } t[dD]}|| j|sJ 7| t!ksJ|'dS)Nrrr!T)use_crcFpack1pack2r8cFD]}|jddS)Nr)rBrG)rJ pack_objss rrewind_streamsz1TestPack.test_pack_entity..rewind_streamss3  # # """" # #rwb) object_countdr).listrWrQrXrRrVpackindexfile_v2_3_asciirrHrr8extendr?zip info_iterbinshar*rCr,r rEr@ isinstancer rBr is_valid_streamr tempfilemktempopenwrite write_packrgetsizer r+pack_version_defaultr>closerindex_version_defaultr(r)creater.)r7rw_dirpackinfo indexinforYr+r,rSentitycountr@rBoinfoostream pack_path1 pack_path2 index_path iterationrbppathipathrIiwriteifilepfilepack_sha index_shapfidxr\ras @rtest_pack_entityzTestPack.test_pack_entitysFF %)%79N$O%)%79N$O%)%=t?\$]$_& !& ! Hi'/ #Hgt'0 $Iw))F;;==%%''83333<<>>&&((I5555   V//11 2 2 2E #F$4$4$6$68J8J8L8L M M J J f {fm33334;''2----|v~5555yFK//// <;6666611$+>>????? DK00!%/////|/// -- 44!'733333~111!11$+t1LLLLLL+D--dk5-IIIIIID===== _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 r7??5))C////%B7799I....::<<8#@@@@@;;==H,,,, HHJJJ  wu--3333#E**{{}} (KKKKK,,..(::::--//9<<<<xxzzS^^3333 "9f55$$&& D DD QJE 88 D D--dk7CCCCCC DI&&&& s$H77 II%!MM M c.tjddS)Nznot implemented)pytestskip)r7s r test_pack_64zTestPack.test_pack_64s  %&&&&&rN)__name__ __module__ __qualname__rrQrRrgrWrXrVr;rNrTrZrrrrrrr)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.utilrrrrnrrrrrrsP 65 *)))))  "!!!!!******!!!!!! KKK P'P'P'P'P'xP'P'P'P'P'r