From 0ae5485d06b6f421425b03ac23849b8f33d03dee Mon Sep 17 00:00:00 2001 From: rgn2836 Date: Sat, 4 Apr 2026 16:13:46 +0300 Subject: [PATCH 1/4] =?UTF-8?q?=D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BD?= =?UTF-8?q?=D1=8B=20=D1=8E=D0=BD=D0=B8=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 0 -> 6148 bytes .coverage | Bin 0 -> 53248 bytes __init__.py => praktikum/__init__.py | 0 .../__pycache__/__init__.cpython-313.pyc | Bin 0 -> 147 bytes praktikum/__pycache__/bun.cpython-313.pyc | Bin 0 -> 1072 bytes praktikum/__pycache__/burger.cpython-313.pyc | Bin 0 -> 3230 bytes .../__pycache__/database.cpython-313.pyc | Bin 0 -> 2439 bytes .../__pycache__/ingredient.cpython-313.pyc | Bin 0 -> 1394 bytes .../ingredient_types.cpython-313.pyc | Bin 0 -> 375 bytes bun.py => praktikum/bun.py | 0 burger.py => praktikum/burger.py | 0 database.py => praktikum/database.py | 0 ingredient.py => praktikum/ingredient.py | 0 .../ingredient_types.py | 0 requirements.txt | 7 ++ tests/__init__.py | 0 tests/__pycache__/__init__.cpython-313.pyc | Bin 0 -> 143 bytes .../test_bun.cpython-313-pytest-9.0.2.pyc | Bin 0 -> 2671 bytes .../test_burger.cpython-313-pytest-9.0.2.pyc | Bin 0 -> 10847 bytes ...test_database.cpython-313-pytest-9.0.2.pyc | Bin 0 -> 6774 bytes ...st_ingredient.cpython-313-pytest-9.0.2.pyc | Bin 0 -> 4479 bytes tests/test_bun.py | 11 +++ tests/test_burger.py | 73 ++++++++++++++++++ tests/test_database.py | 40 ++++++++++ tests/test_ingredient.py | 24 ++++++ 25 files changed, 155 insertions(+) create mode 100644 .DS_Store create mode 100644 .coverage rename __init__.py => praktikum/__init__.py (100%) create mode 100644 praktikum/__pycache__/__init__.cpython-313.pyc create mode 100644 praktikum/__pycache__/bun.cpython-313.pyc create mode 100644 praktikum/__pycache__/burger.cpython-313.pyc create mode 100644 praktikum/__pycache__/database.cpython-313.pyc create mode 100644 praktikum/__pycache__/ingredient.cpython-313.pyc create mode 100644 praktikum/__pycache__/ingredient_types.cpython-313.pyc rename bun.py => praktikum/bun.py (100%) rename burger.py => praktikum/burger.py (100%) rename database.py => praktikum/database.py (100%) rename ingredient.py => praktikum/ingredient.py (100%) rename ingredient_types.py => praktikum/ingredient_types.py (100%) create mode 100644 requirements.txt create mode 100644 tests/__init__.py create mode 100644 tests/__pycache__/__init__.cpython-313.pyc create mode 100644 tests/__pycache__/test_bun.cpython-313-pytest-9.0.2.pyc create mode 100644 tests/__pycache__/test_burger.cpython-313-pytest-9.0.2.pyc create mode 100644 tests/__pycache__/test_database.cpython-313-pytest-9.0.2.pyc create mode 100644 tests/__pycache__/test_ingredient.cpython-313-pytest-9.0.2.pyc create mode 100644 tests/test_bun.py create mode 100644 tests/test_burger.py create mode 100644 tests/test_database.py create mode 100644 tests/test_ingredient.py diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a5c2315f7bb7cc4988bd116fdc15e67a4bdf779f GIT binary patch literal 6148 zcmeHKJ8DBg3>+nf7}B^*xmWNF7UP`27ce*w7ydvzHcagx&TK46P??6LdF zKfLCx*J;X10VyB_q<|EV0>4zidoOMJn5ZZPq<|FoR=~dxjqcbBhs5}FFvJKzoG=~6 zb<7gP<_Tgi91@wKSyG8fwHh%j>CCsP>xDyN(qT1xSUuTlLa}%{?{85K>xqg|Knh$c zaG%?m_y1@5jrsqQq@5Iy0{=<@n=Dt$1z)Lp>*(dY*Eaf^?lqruH?D)i5bc;4?U);H e$4^m|bDNZ=ZeL3ItzwJ=+ZUab-$TRpmv_6-6o0V}c&(RHT`Fx0I4 z&=*a4&Z2d6){;9eMe%aZu$mMVh!!Q$@hsc)w)rKoy%6n?94!!ALA-(z5mw8Qd+;Mk z_&oQ-y6}Y45PqDCBUW?1Jpa*$ z>_zQ1ch{pXBcpj-InOUc%FSlH`^L`|nw(yME;!eW)z zjFQ?)UWx-vD6Pp|hS7ABElfZ3(t+ebgJc?!jgn~}Nw!dN7K?gyb!J#`lKqTYGBegK z=8M&X2i0!eBjmUwABBNJ$Te9P*l{8lJ^LLq*x>i)U9P5#&lU9Q^9P4zTxP+j$!GoA zR4&T$$6BOs)1WUO+CY}&nk>t&iS5P9W}8Nnj%j(+WoZnK&j4KR*feQpv+jmL)PCh+ z)I8<6C(Cb~K(?IP(_Zt@?$o{Cbba5V)2cje`KQvgd~U<^e3EpQY7vm$y5izdzdQ6w@ zmApYJ&&vyZmEBY54-*6+009U<00Izz00bZa0SG_<0{c%uQ*&xjUjOIVPYSzBPnaM8 z0SG_<0uX=z1Rwwb2tWV=5O^d7Dmm>iOaCq8*p#ZxOeg;XaAK);d}*ajrOL583cJJp zc_a&nOhW(y5P$##AOHafKmY;|fB*y_&=aU=ht>3BfLvLdDJ7o*$nXF4$uAZ5E&GJM z%buM4jTSIL00Izz00bZa0SG_<0uX=z1om8DMc0(gQDE70oaIe(v9ld)xXxn7 zb1#ZUu-x&?OM!JMw3p@Y_UooE=xzch3Yrp*7)JN&p&Mmb!U-twcwSTN5d-U?N4FiK zpck~f(p5){$_{4)+a2Lk{IQ&-v_=fChYm%osH3wOhUHj+VNjU-{$HQGsj%dY1+c+`+0SG_<0uX=z1Rwwb2tWV=B=D@ZIqH>l-}S$KQVT~7%Pz?23c2u% zW{(=!yZ+Cg&Ue*Oqq4*GuK%@~)*3ZDzW&dxXq%-GKQZXL{>T0Q(5D~(0SG_<0uX=z z1Rwwb2tWV=`&vMw{}`B%-~X%ZKZX7z{}fB*y_009U<00Izz00bbg4+S)Bq7?o9 zpM9gSf7zexXZ8d8o)$1c00Izz00bZa0SG_<0uX=z1R(Ix3FvxWElp})j}_?k@q+Ho zl=C$AgnsImyN*`TX#P!L_mK3kL&+^Qkf_Q1Rwwb2tWV=5P$## qAOHafKwyY~{QWcIt$v-y$ literal 0 HcmV?d00001 diff --git a/__init__.py b/praktikum/__init__.py similarity index 100% rename from __init__.py rename to praktikum/__init__.py diff --git a/praktikum/__pycache__/__init__.cpython-313.pyc b/praktikum/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3fd5ad4b47d15f1f729dcfdd3772daac08a1cccc GIT binary patch literal 147 zcmey&%ge<81Tj*lGC}lX5CH>>P{wB#AY&>+I)f&o-%5reCLr%KNa~i6erR!OQL%nv zUY>qoqHaNDNk)F2Zb4CgR%&vIenC-Uc1dP-X|8^Jd}dx|NqoFsLFFwDo80`A(wtPg WB37UgAS;SNjE~HWjEqIhKo$THv?7QA literal 0 HcmV?d00001 diff --git a/praktikum/__pycache__/bun.cpython-313.pyc b/praktikum/__pycache__/bun.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..35a554893d433f873d5e5615f8d8659e968f5f7d GIT binary patch literal 1072 zcmbtSJ#W)M7(Ra`j{6b5BBcfi3s^EVkx;uK1_s6sSd}_NI=QJE+`3MBwuf}8s8py_ zR53*Azz-l>`6yJB^an7Vx5_IMTOgIX^1he4RIJ?a-21%m-E+^qcf*MZgTSbp-@R># zkRM30pTG6Y>xCijRi>e`HK=LOS&<$&pe73=~tnnq6r=O?(~AbEj8eSW~d z@DG4}e#BuBsEu-fAb%v5CEIXtKiR4psTw$IZmPAJ*KivOILik12l?<0K$k3B^Ro(B zuzb9T7){cX=6W*IfUz7vMM>4r^_Tx>ZnfALV5&FWh>BJTFB!vH=B0RZ zud~zPdYMf^_J2HJ8`*V~zT%*OXNqS^C$Jrt6i>V2VPj{5>r=u5D?n)u{vLD^y+bDr zO4nLTv5)aMrR%ZdUsQ^eE_*DDd@pc=7L@apF0~pEC}G4>ZP{-*5yQT-8we$Uv_xqb zIg!_(P82b3F^=4j(jFNdkKJL|djWWt@FBo9`6VlwJ}_kM_P#wJFug0C;WW@CZEFAi z8G&h#lQeUG_8ek!B!^0K@I*rKF3RH7FW%?T=vt4N1vzn45rTmtNz%DIDVe_sfY|T{ DCoCKl literal 0 HcmV?d00001 diff --git a/praktikum/__pycache__/burger.cpython-313.pyc b/praktikum/__pycache__/burger.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4acd69ff27873856f556f6235dd2727d88299e0e GIT binary patch literal 3230 zcmbVO-EY%Y6u-7($4S#BrIdCBT2m@$2yI}cgYmsGwyul{)v8oMhZS1W8Hy9G9iV;U zV}in%Djv}Ku!kZ|V!U-@-56ivPp}nOkR>FfX%D=W4~f^EW5-DwKBVnPx%ZrN?>YB( zfA`!QzpShb6Oc~9)*kVM{Edb$fr9dKD=1fqOk`#c>0u}%q0a7MdpOFuI=3g#!&6=& z^`x1|fd(S;ovas4g%Kehe1=AxaROgzh6z2_mDQmOf1!_1by!n%bI6|27@Ow6{2 zhk&c1U>$JqdnrMKRn$*LLGvVuR&n+Sxxw__U>)vIR(C42Vr>{$IfgoV*ubfhvo6_h zsMJWNbUk@I)s`7EzfS9I8Ja$#4w=aeO&vA0quFE0L+<&tXT}^+Q8ZmM6~&2qhuZEt zqL9(3hUPSRTvIm@xGX+yOHKqHiS;iLB8@;ZRH$Wikm7z~U|b~wvC?iv2*ukJXWXbb zORK5ZEne;QA1D0KwscAY~2-D#*=}esS$_~k(P0$#KPx6Z|T29E40wHDoWf-{{nm3Oy zluvB26I=3$9d=^J13s7d?2-7n$C5x*GfVXa4?qBtxD;Ii<-btW3G-28rVVJ(87Oef zRVFp0yB0>-fkkhl+0W4i)vYso>j^?S9UYrHMI##A+uZE};vE6d|ok5R(Qw0gTORC-DOh3*};}_$YLMo6^AoS>bL{uSVndD z(ez1`di5DNlGgOXi{J#QI;3hDlfF^RP6ehd3_FYF6?MUf4}ozX8YpXN)wFs2)U{Lj z)tl_qn{ul+TdTI*`p9bRvX<|f2rek^n#taay;FTZa??HemW_7H#$3zCIcalV+G$HW zb5fVpwCln82mAB82khMgx!wD%PY+lJzOt4c{41jPcOev;th!h=wPZSQUA!jdrS-P7 zJ|}fpO&eyqt-5Uw#qE#9s5_-@dhzwfYmK=T>n-U+tFGgrxZ!EEW^(M}*i>CEy227y zxOa+T-S);8;YR^72_FSvMLCup&W@rUQIzA^)M#NOswjswYM7&%uIgzR4l2rUdPq?y z{#8(XkLY4-@ZqNTAL4MDZqnswu0)eRJep3K?s3p0dN-iAR#6NyWoko8$~38VC~K;Q zqTC=JLaa547tn1`F%Cj=o;+uHUVKr-^6TbAhOe92^@>0@CouflpBhkKi+annfqDz- z-ORK+2SztDBcrpMnG*!QcB=Cgfo?7q;+v=B*91CmX*-V$zp2{c zyT#qLv$*6deGhmvxX8CdU}-mwxYc8LJMDr2{QNMmc;`5VVV;n>f5`GDB=K5^GtDpH I1Ih#QFTgzg-2eap literal 0 HcmV?d00001 diff --git a/praktikum/__pycache__/database.cpython-313.pyc b/praktikum/__pycache__/database.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..aaaedf3ef4725568548ccc1ce69a8b58d43c86be GIT binary patch literal 2439 zcmb_dU1%It6uvV%J9B6AM@?gXwC?x=x+J>`V(~>pV^hs0EH$$$lmsr5-Dxt-W_EjL zMoFGpL1|IwQ$WOr2tK55Em%}+V;+M~v+PR3g`yxn7|;g2s7qM$ANLB;X@6QYK2H z0WZzS8HFktOtFSW&ErwuJT~ZSGfC~wMNwb#Y!XBCQY}jJc_7XLVmT9{Q zkqu2}-<_K}Gd-2fk=*%nQ$&9||IQQ}epG#SdUh6ch42F*jWmVESztEM0-}PBsHh7x zqKj10BV&k0b!kCfP@>@Rn#iNPC{Y~f)TT}jbTM6_Jxe&DGJM8xjYY#T4=^0^vOr?~ zm;R6b&FYov6%Bs=9shRqV}INK*1rk-_nQBczpYg-gLKQ^2FvZh>lVo0f!7aO;CR=+ zTm7v1Nh($l0J60dV0a#lzoB*;D2?){)Ut)rk#`==9a-AU98cqsHP2Clr3<>)x|P#S zBn`gt1V|BG>Jn14-6_XnYIaX6cD{GaPHlP22Yt;YU4cBC{m?Z`=##Evs*rnk;_Piz zL63DU_cmrv*K%)T_IApB2_^cn>*`|3D6D9Uo_$b+yw=r^mMzx|f>+i zjPE)%O|Rn|;5}}g@XzTrEmz0+j^?EQey*nF>-d8X*poZ&?G|d3Y;YHaPiR1cP%7n2moKX)nRuWfKBD0Y3C3knjrW)4;NR<3qzL z8H**81nn?kmMo zg-{$Nn}{*lU90dq@Q7I7(aTH0bp`>llWkqQUO~ictdofVpy{+7m;Wxs% ny-AZ`;C<*k1LQCw2*N!y{0BO94~_qd@(<)uLA#HD1c(0tYPk7` literal 0 HcmV?d00001 diff --git a/praktikum/__pycache__/ingredient.cpython-313.pyc b/praktikum/__pycache__/ingredient.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d22c0acf8f158c5a3a6760186a110bcf80c37050 GIT binary patch literal 1394 zcmbtUJxtqB5PpvB#4(A|Hc%z$VihV8sgO#ArK&nq>d=Lu7E*>tPiZizAvodL8Nviq zqC%qT6p5i*m$F4Is8JDg>(J?WLtZ;|OB*EC-n}FQ(VvBreDCgi@7;ZO_mXZrt`m?# z=9~REM96n^2BP$hZVHShNs-&cBpG5#vv3lHk#Z<2mwHZ5hx<-94@Q#|2$M|0LZ-xI zGsF~AE~usgpIQjdgw1eHF8+ys;4L@`%pkJiZy`hE z7bNWS+Njs4S%KmdSFAv-F}q}y22;UC;~Zr8x|5)qB!8^}Yfth<1^Xf-f3MP?7$Ie{ zC(UK$K*7ii$HgL`vPz)1R%MZ?h@8VNW-~y7ncTc#)F8Nf9n?BG86Dq=o{XkIjb&czT>wcC zW|miHPU*Z50MQmDXTWHZdGZX_%Q8V&6tJu$YTJ|82zV}DHCPOE5G`9C75xlGFAzIN z<9HrV0<%Q&&D!=F*U~Hjz*WeIw%)+d7pQ2MR1ElHiw58|INco*X>2#Rmbx+#{LQn! z5)tq1G7$umcm@9mMDnaWd?O5_&1GXaY^(!@ty8*EU8q;kj#0W=FIM_H2}&1j=6V&| zv79PwM<`vWmcWo*j|J*trCRhDwx5ZNH_^gT2V<1FUeU8lwCH)veqQ%1m(sl+A2C&i z??NbSuloel7Wo-cRIL+})m!i74uPe0Uo7qVDS91UQZu`=rv#QxSW?rw<7lV*_8Hou sVi9)^UX(~Oftm0*^q!OUuvhLQb_Xz#9XC6&BuQtXq?G#0n~PVhX4Qo literal 0 HcmV?d00001 diff --git a/praktikum/__pycache__/ingredient_types.cpython-313.pyc b/praktikum/__pycache__/ingredient_types.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..608dbb27b5cf066eb36d402c17db26a4b59a8f45 GIT binary patch literal 375 zcmey&%ge<81Tj*lGWP=M#~=<2FhUuh1%QmH48aUV48e>=jKNGrOzF&;ETu(2VXh1F zFKoTo0L1MVc3f<{u=~Q+3wtl@xUf~>Vxz*vCLnA7g$)<>T-c!iWbVDN8Km^W7LbAq zdx6sXE^N}{3U&;2c2#)PFd3-l!oG{m7aO_UJbipT{oKKVKy4d9rUU6+7dCL+Vg;+e z#ST^Dr^$SaJw84qKRG`BmMBnDkgJQQt6xZbNMwL(JVdQHx-eAlN`}uMKi;y^4=qkD zD%MZT%hNAR)Geqi$;i*sEhx&*N=+`&FDOdPF3HR;&DGD$OD{@I$xO{Fi7%-vNG;YY zsJz8tlbfGXnv-f*1PVz|m=#L^i4V+-jEo>P{wB#AY&>+I)f&o-%5reCLr%KNa~iJerR!OQL%nv zUY>qoqHaNDNk)F2Zb4CgR%&vIeo1O^NwI!>d}dx|NqoFsLFFwDo80`A(wtPgB37Vw SknzPJ#z$sGM#ds$APWFzE+F3k literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_bun.cpython-313-pytest-9.0.2.pyc b/tests/__pycache__/test_bun.cpython-313-pytest-9.0.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f9cfd9084c025f229a4986244187fe5cf4a6e7a1 GIT binary patch literal 2671 zcmeGeU27aw^xm1-oynRHl2T2gg*BuxgJiRfiA~k5-z20^A=3pR!ez3Vq|;7jrgvu1 zXtpgXlG29?k{6%)nz#BUiv9&>8`8=}@WBVkn=}-mPo6U$yIC6ico2N>GIQ?vKIfjf z_uM(?=_wExZ>dfD5+&ppB(kBT$iZ1awuwOudX8`!&(eY%NJX-s@LUlk(z*PC%GDwn zBqPL-hl!!gNQphy)~KG_N8-Frh5Sa{ttFBKLfCj56k*yX@5LdwWKb>}(lFr)y5l)R z;rX?ko)_u`D+s~KKIT`;tkH!EuMF>j0-?9bQcGq~L(0-|X_YRfsi9Feypa(ylM*gO z_TH>2FU=F;RmW5A$`6DrWkn&2`OLCC=OqqU_h#$Rg6e_K<@G>v>onSctq zc|$d{YQ9WkN?q#DGCve`Amg=XsDYaK%4Q3;W`(*EymE#57uJa0b^hTf7)4(;uSa*9 zA4lKA{2gGoiqTiiPoi(5Z=yTJ^Al6$vc3N+6l8}!k}4IQemH+}+~1higThBCQmhma zo61;#q^zc@>LfZ{Q-tj;q z5Q8kZ=+&K-Se30g-m>X1*Ic(m7Yoc)3q6S5*W(0i&wZP7kBeh$)#K}C$gB^1$8^mQ zBs-c=0?S$DxD&+_7%WNq)M4U3n#GxK@4HBZpq&e194HXPQXaYFNV|RPf9xB$)wt1!w6U$m&1*2-9*se>Z|uI7K6gQQtwkls9`J$|ui2(h&`1Qk zZ9713kG9lX$USZB0CM{G8X5h+k!20yP)j+w<^7i%8OO82yAa?V0zGQ(pZ6$i0FSk( z_+;}Q^o*UBA4B(P8`AK2p%p)lBDiG;e+t1Mf*}OM2;kBp{22r%0Cb#deiAsMzvDp0 zjcDk|vx*{IW$*=nBaZ6kjm=1#+uFQ&6{hIfxdb-*=I(3ha~H%{TU3JV0S^vqs?lsy zDA-H{yKOr_!F5Z&h1}ETI9|Cs@GGMVjm4#5OcWSf_g3nT1$Z}OSL&vN>j0{cu~nM~ zp<}z2>oLa1z??r1KpbZ*2%*Q;m>GuLUamulKw$zEFi2cDj%_Oja6OR#ztU&qfh6Ug zd#Fjdd75aVlHMh>>>7x_kr-mh#ZgKcHZ=1Rx8CP=2$w*MCDfD`e__$%bMta&U#_p0 xpsU7rQIbMuT0(mzS@2mt3$gKUB*5M9n@lPFnUGJ(9y#%QUZwN&0YMn&`3DsuB|!iH literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_burger.cpython-313-pytest-9.0.2.pyc b/tests/__pycache__/test_burger.cpython-313-pytest-9.0.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..07b02a37ada50b22a72eb932c0182a12f1f6b8de GIT binary patch literal 10847 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 literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_database.cpython-313-pytest-9.0.2.pyc b/tests/__pycache__/test_database.cpython-313-pytest-9.0.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8f49f03c15ed1df990c6cc2d8a6344b56455c5f0 GIT binary patch literal 6774 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 F@qbgZ#}5Di literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_ingredient.cpython-313-pytest-9.0.2.pyc b/tests/__pycache__/test_ingredient.cpython-313-pytest-9.0.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0ebc690703c2a024612a00897ffdc78afa814eb0 GIT binary patch literal 4479 zcmeHK-ESLJ7QZu|nT#DLhL%7Z3K%zKW0EFmNSc-;h>s1WEt^H2dexOHhN&}7O&yQ9 zGgg}*q_!X^0*R+S@PgQtR%#!RD(xac*`oaqc81WVx?;6RJoT;H>}n;RIOoo1s4G5% z5D$#(Gv}OpKJL9U=iJ|{_w-~4T>G+KeL^DSD-^;DWPYtb2e)%XBbsoKP=VjY11Vd~ zlLHc!^ZtlJ6&Mi@b{$Zu%5|xO=_#<;LJCBa`iUk_ihe+vSrm%Obrj}{0?X`gE>d%$ zZZ;i|gomrXl~2_`SU(BOIdX(gfQp(xQ<~UMsHCNU%14w^Z_>@@OLyL?)1)J5P1Y2x zYg9Ut(Nrz1Wk#h@F`S&%-A^V1H`=XbX?C%v*vonknYI&8^tu8jRUr|+3-}cL*Lz`= z=SU?Qs|2eiuz#93i8gRGg|bizci2~PY847m`esTKtf$J-qt6gxl?MZ>g?|!K!Swtp zg&Pzq;12tpD$5gsCLNxb5GR8ynq1+}8VyU?gn7Wmd8a|MaPNjJ9X7W>%EDx@%5ZMR z-5b2_=#(Y)`n>>iidWLvS`2f1r)BDUTS}p&ri@5CVFpcj9W=G9j0s%os%#Etp2&Jv zsEhBg2VG&T@NPnd%nD5r{;64^b!d?k)ARqE0VnrQ?x)_X-s!w|#yjO+bpPglP`_+RqQz~CG1hu&%T5}15^JqH0U2w#h{vqfQL-;Tl7@mHe!4JXN$=rXJPa1&O6v%VS8!kxU?& z`nuP!ZIe1Y{9fkX&gw3*Vdz`|x*bo-dqZY*$9eX(I3H5z>S zEUnu{&BO?-_X$3&y49Sc)S_&&UbENo-4vbt-nPi)d8tuW!c4IPsF}sq& zBS~R*Qke7wKky!Zw!W}y%*MLQ2N#hX4uw3b;v-QPkW4{OF6#1g>fzR`k?o``7vAo*1ayD}< zw{?@ob~m@F{lqptsRJ;8_}Lll#(p&|nLatw{Qjz!^#CHYE2UxgW^`KsGc7`Ww)& zZBhO5a8a#ui4EPZ*gF{GCfM%+3CsQB%0I?e`<@PpeY=<2?y5s>Zu@F(2QcS1apL8M z*3{tl84mA=M4!2$4q>SWCSEMT00i?#Rui7UpWhTYM9funh&~LnTY1P?ZkfY*Ja>lk zd>zAiXwJ~!%!NcBq-ikbkC(~(_-OA2h5Hxp6dsjuQoiH82?yYZdH3&dy9}=b9-W_f zZ}TG))R*A=1QAZsi}hi^BdqJ`{m(uNCsS31K;ad^vlqVw&kpY@$Dm9u%cTgeg{}a; zYB4ynP6UALYzTVx2@8;^5`no=1Zm<30Lg^13Xn`Z>?9yrs)8>$ze*7}3pEJjLL?eN zvN%ge2v?TF+7D;PAzAFz8OTLm0LfB`m2|dN!W`de8G$2B`pH)sfw&*E(#Q)|Drs^6 z|I+w9P)-N%FH?!W8xkwr6hD`c1NfH-_aeLp@J|8gcM_nVIv;keAA#Ahf;M8d-9_6+ zGn+e3On`YC} zb&9n>cLHIGkGz?*WYFWR8}K%`IJCZE`bXP6-^T7i*QD5LSf8%j4uI&YZaCm{v<=4> zgrCLm*xmV)qS)v-LB{?Akk`pgQIr>jo2n=e-%yE?eWP-^vL~(*KE33>xP_4XVzs!QU22_$}{UZ;NWvwp7B#+l43Vg!w&|2 z5VNhizt9mM+5_w#q2>u%cTAR!RIDq|`LFqt5Q*K@qQ-Hje!RUj5~FgzD*8JO>G+D- z{+c)L15;=G=kpl-9Yn@&VjEGxjg%k=|0d)$@@mh&$j}#L@c+stVdf?Q!k6?7C-BGA literal 0 HcmV?d00001 diff --git a/tests/test_bun.py b/tests/test_bun.py new file mode 100644 index 000000000..2b43e9f94 --- /dev/null +++ b/tests/test_bun.py @@ -0,0 +1,11 @@ +from praktikum.bun import Bun + + +class TestBun: + def test_get_bun_price(self): + bun = Bun('Краторная булка N-200i', 1255) + assert bun.get_price() == 1255 + + def test_get_bun_name(self): + bun = Bun('Краторная булка N-200i', 1255) + assert bun.get_name() == 'Краторная булка N-200i' diff --git a/tests/test_burger.py b/tests/test_burger.py new file mode 100644 index 000000000..2de99731b --- /dev/null +++ b/tests/test_burger.py @@ -0,0 +1,73 @@ +import praktikum.ingredient_types + + +from unittest.mock import Mock +from praktikum.burger import Burger, Bun +from praktikum.database import Database + + +class TestBurger: + def test_set_buns_correct(self): + burger = Burger() + + bun = Bun('Name_bun', 100.0) + burger.set_buns(bun) + + assert burger.bun == bun + + def test_add_ingredient_correct(self): + burger = Burger() + mock_ingredient = Mock() + + mock_ingredient.get_price.return_value = 9.0 + mock_ingredient.get_name.return_value = 'тест' + mock_ingredient.get_type.return_value = praktikum.ingredient_types.INGREDIENT_TYPE_FILLING + burger.add_ingredient(mock_ingredient) + + assert burger.ingredients[0].get_type() == praktikum.ingredient_types.INGREDIENT_TYPE_FILLING + assert burger.ingredients[0].get_price() == 9.0 + assert burger.ingredients[0].get_name() == 'тест' + + + def test_remove_ingredient_successful(self): + burger = Burger() + mock_ingredient = Mock() + + burger.add_ingredient(mock_ingredient) + burger.remove_ingredient(0) + + assert len(burger.ingredients) == 0 + + def test_get_price_correct(self): + burger = Burger() + base = Database() + + burger.set_buns(base.available_buns()[0]) + burger.add_ingredient(base.available_ingredients()[0]) + burger.add_ingredient(base.available_ingredients()[3]) + + assert burger.get_price() == 400.0 + + def test_get_receipt_correct(self): + burger = Burger() + base = Database() + + burger.set_buns(base.available_buns()[1]) + burger.add_ingredient(base.available_ingredients()[1]) + burger.add_ingredient(base.available_ingredients()[3]) + + expected_receipt = "(==== white bun ====)\n"\ + "= sauce sour cream =\n"\ + "= filling cutlet =\n"\ + "(==== white bun ====)\n\n"\ + "Price: 700" + assert expected_receipt == burger.get_receipt() + + def test_move_ingredient_forward(self): + burger = Burger() + + burger.ingredients = ["bun", "cutlet", "cheese", "sauce"] + burger.move_ingredient(2, 1) + expected = ["bun", "cheese", "cutlet", "sauce"] + + assert burger.ingredients == expected \ No newline at end of file diff --git a/tests/test_database.py b/tests/test_database.py new file mode 100644 index 000000000..b29932b04 --- /dev/null +++ b/tests/test_database.py @@ -0,0 +1,40 @@ +from praktikum.ingredient_types import INGREDIENT_TYPE_SAUCE, INGREDIENT_TYPE_FILLING +from praktikum.database import Database + + +class TestDataBase: + def test_get_available_ingredients_correct(self): + data_ingredients = Database() + + available_ingredients = data_ingredients.available_ingredients() + assert len(available_ingredients) == 6 + + def test_get_available_buns_correct(self): + data_bun = Database() + + available_buns = data_bun.available_buns() + assert len(available_buns) == 3 + + def test_get_available_ingredients_prices_correct(self): + data_price = Database() + + ingredients = data_price.available_ingredients() + price = {i.get_name(): i.get_price() for i in ingredients} + + assert price['hot sauce'] == 100 + + def test_get_count_available_sauces_correct(self): + count_ingredients = Database() + + ingredients = count_ingredients.available_ingredients() + type_sauce = [i for i in ingredients if i.get_type() == INGREDIENT_TYPE_SAUCE] + + assert len(type_sauce) == 3 + + def test_get_count_available_fillings_correct(self): + correct_ingredients = Database() + + ingredients = correct_ingredients.available_ingredients() + type_fillings = [i for i in ingredients if i.get_type() == INGREDIENT_TYPE_FILLING] + + assert len(type_fillings) == 3 diff --git a/tests/test_ingredient.py b/tests/test_ingredient.py new file mode 100644 index 000000000..e8d4f0e01 --- /dev/null +++ b/tests/test_ingredient.py @@ -0,0 +1,24 @@ +import pytest +from praktikum.ingredient import Ingredient +from praktikum.ingredient_types import * + + +class TestIngredient: + def test_get_name_correct_name(self): + ingredient = Ingredient(INGREDIENT_TYPE_SAUCE, 'Соус традиционный галактический', 15) + assert ingredient.get_name() == 'Соус традиционный галактический' + + def test_get_price_correct_price(self): + ingredient = Ingredient(INGREDIENT_TYPE_SAUCE, 'Тест', 15) + assert ingredient.get_price() == 15 + + @pytest.mark.parametrize( + 'type, name, price, expected_ingredient', + [ + [INGREDIENT_TYPE_SAUCE, 'Соус традиционный галактический', 15, 'SAUCE'], + [INGREDIENT_TYPE_FILLING, 'Хрустящие минеральные кольца', 300, 'FILLING'] + ] + ) + def test_get_type_correct_type(self, name, price, type, expected_ingredient): + ingredient = Ingredient(type, name, price) + assert ingredient.get_type() == expected_ingredient \ No newline at end of file From e9e5add1dbeeddce031e7ccff700778121f8f7f1 Mon Sep 17 00:00:00 2001 From: Rail Garipov Date: Sun, 5 Apr 2026 12:58:07 +0300 Subject: [PATCH 2/4] Delete .DS_Store --- .DS_Store | Bin 6148 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index a5c2315f7bb7cc4988bd116fdc15e67a4bdf779f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKJ8DBg3>+nf7}B^*xmWNF7UP`27ce*w7ydvzHcagx&TK46P??6LdF zKfLCx*J;X10VyB_q<|EV0>4zidoOMJn5ZZPq<|FoR=~dxjqcbBhs5}FFvJKzoG=~6 zb<7gP<_Tgi91@wKSyG8fwHh%j>CCsP>xDyN(qT1xSUuTlLa}%{?{85K>xqg|Knh$c zaG%?m_y1@5jrsqQq@5Iy0{=<@n=Dt$1z)Lp>*(dY*Eaf^?lqruH?D)i5bc;4?U);H e$4^m|b Date: Sun, 5 Apr 2026 12:58:25 +0300 Subject: [PATCH 3/4] Delete praktikum/__pycache__ directory --- praktikum/__pycache__/__init__.cpython-313.pyc | Bin 147 -> 0 bytes praktikum/__pycache__/bun.cpython-313.pyc | Bin 1072 -> 0 bytes praktikum/__pycache__/burger.cpython-313.pyc | Bin 3230 -> 0 bytes praktikum/__pycache__/database.cpython-313.pyc | Bin 2439 -> 0 bytes praktikum/__pycache__/ingredient.cpython-313.pyc | Bin 1394 -> 0 bytes .../__pycache__/ingredient_types.cpython-313.pyc | Bin 375 -> 0 bytes 6 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 praktikum/__pycache__/__init__.cpython-313.pyc delete mode 100644 praktikum/__pycache__/bun.cpython-313.pyc delete mode 100644 praktikum/__pycache__/burger.cpython-313.pyc delete mode 100644 praktikum/__pycache__/database.cpython-313.pyc delete mode 100644 praktikum/__pycache__/ingredient.cpython-313.pyc delete mode 100644 praktikum/__pycache__/ingredient_types.cpython-313.pyc diff --git a/praktikum/__pycache__/__init__.cpython-313.pyc b/praktikum/__pycache__/__init__.cpython-313.pyc deleted file mode 100644 index 3fd5ad4b47d15f1f729dcfdd3772daac08a1cccc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147 zcmey&%ge<81Tj*lGC}lX5CH>>P{wB#AY&>+I)f&o-%5reCLr%KNa~i6erR!OQL%nv zUY>qoqHaNDNk)F2Zb4CgR%&vIenC-Uc1dP-X|8^Jd}dx|NqoFsLFFwDo80`A(wtPg WB37UgAS;SNjE~HWjEqIhKo$THv?7QA diff --git a/praktikum/__pycache__/bun.cpython-313.pyc b/praktikum/__pycache__/bun.cpython-313.pyc deleted file mode 100644 index 35a554893d433f873d5e5615f8d8659e968f5f7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1072 zcmbtSJ#W)M7(Ra`j{6b5BBcfi3s^EVkx;uK1_s6sSd}_NI=QJE+`3MBwuf}8s8py_ zR53*Azz-l>`6yJB^an7Vx5_IMTOgIX^1he4RIJ?a-21%m-E+^qcf*MZgTSbp-@R># zkRM30pTG6Y>xCijRi>e`HK=LOS&<$&pe73=~tnnq6r=O?(~AbEj8eSW~d z@DG4}e#BuBsEu-fAb%v5CEIXtKiR4psTw$IZmPAJ*KivOILik12l?<0K$k3B^Ro(B zuzb9T7){cX=6W*IfUz7vMM>4r^_Tx>ZnfALV5&FWh>BJTFB!vH=B0RZ zud~zPdYMf^_J2HJ8`*V~zT%*OXNqS^C$Jrt6i>V2VPj{5>r=u5D?n)u{vLD^y+bDr zO4nLTv5)aMrR%ZdUsQ^eE_*DDd@pc=7L@apF0~pEC}G4>ZP{-*5yQT-8we$Uv_xqb zIg!_(P82b3F^=4j(jFNdkKJL|djWWt@FBo9`6VlwJ}_kM_P#wJFug0C;WW@CZEFAi z8G&h#lQeUG_8ek!B!^0K@I*rKF3RH7FW%?T=vt4N1vzn45rTmtNz%DIDVe_sfY|T{ DCoCKl diff --git a/praktikum/__pycache__/burger.cpython-313.pyc b/praktikum/__pycache__/burger.cpython-313.pyc deleted file mode 100644 index 4acd69ff27873856f556f6235dd2727d88299e0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3230 zcmbVO-EY%Y6u-7($4S#BrIdCBT2m@$2yI}cgYmsGwyul{)v8oMhZS1W8Hy9G9iV;U zV}in%Djv}Ku!kZ|V!U-@-56ivPp}nOkR>FfX%D=W4~f^EW5-DwKBVnPx%ZrN?>YB( zfA`!QzpShb6Oc~9)*kVM{Edb$fr9dKD=1fqOk`#c>0u}%q0a7MdpOFuI=3g#!&6=& z^`x1|fd(S;ovas4g%Kehe1=AxaROgzh6z2_mDQmOf1!_1by!n%bI6|27@Ow6{2 zhk&c1U>$JqdnrMKRn$*LLGvVuR&n+Sxxw__U>)vIR(C42Vr>{$IfgoV*ubfhvo6_h zsMJWNbUk@I)s`7EzfS9I8Ja$#4w=aeO&vA0quFE0L+<&tXT}^+Q8ZmM6~&2qhuZEt zqL9(3hUPSRTvIm@xGX+yOHKqHiS;iLB8@;ZRH$Wikm7z~U|b~wvC?iv2*ukJXWXbb zORK5ZEne;QA1D0KwscAY~2-D#*=}esS$_~k(P0$#KPx6Z|T29E40wHDoWf-{{nm3Oy zluvB26I=3$9d=^J13s7d?2-7n$C5x*GfVXa4?qBtxD;Ii<-btW3G-28rVVJ(87Oef zRVFp0yB0>-fkkhl+0W4i)vYso>j^?S9UYrHMI##A+uZE};vE6d|ok5R(Qw0gTORC-DOh3*};}_$YLMo6^AoS>bL{uSVndD z(ez1`di5DNlGgOXi{J#QI;3hDlfF^RP6ehd3_FYF6?MUf4}ozX8YpXN)wFs2)U{Lj z)tl_qn{ul+TdTI*`p9bRvX<|f2rek^n#taay;FTZa??HemW_7H#$3zCIcalV+G$HW zb5fVpwCln82mAB82khMgx!wD%PY+lJzOt4c{41jPcOev;th!h=wPZSQUA!jdrS-P7 zJ|}fpO&eyqt-5Uw#qE#9s5_-@dhzwfYmK=T>n-U+tFGgrxZ!EEW^(M}*i>CEy227y zxOa+T-S);8;YR^72_FSvMLCup&W@rUQIzA^)M#NOswjswYM7&%uIgzR4l2rUdPq?y z{#8(XkLY4-@ZqNTAL4MDZqnswu0)eRJep3K?s3p0dN-iAR#6NyWoko8$~38VC~K;Q zqTC=JLaa547tn1`F%Cj=o;+uHUVKr-^6TbAhOe92^@>0@CouflpBhkKi+annfqDz- z-ORK+2SztDBcrpMnG*!QcB=Cgfo?7q;+v=B*91CmX*-V$zp2{c zyT#qLv$*6deGhmvxX8CdU}-mwxYc8LJMDr2{QNMmc;`5VVV;n>f5`GDB=K5^GtDpH I1Ih#QFTgzg-2eap diff --git a/praktikum/__pycache__/database.cpython-313.pyc b/praktikum/__pycache__/database.cpython-313.pyc deleted file mode 100644 index aaaedf3ef4725568548ccc1ce69a8b58d43c86be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2439 zcmb_dU1%It6uvV%J9B6AM@?gXwC?x=x+J>`V(~>pV^hs0EH$$$lmsr5-Dxt-W_EjL zMoFGpL1|IwQ$WOr2tK55Em%}+V;+M~v+PR3g`yxn7|;g2s7qM$ANLB;X@6QYK2H z0WZzS8HFktOtFSW&ErwuJT~ZSGfC~wMNwb#Y!XBCQY}jJc_7XLVmT9{Q zkqu2}-<_K}Gd-2fk=*%nQ$&9||IQQ}epG#SdUh6ch42F*jWmVESztEM0-}PBsHh7x zqKj10BV&k0b!kCfP@>@Rn#iNPC{Y~f)TT}jbTM6_Jxe&DGJM8xjYY#T4=^0^vOr?~ zm;R6b&FYov6%Bs=9shRqV}INK*1rk-_nQBczpYg-gLKQ^2FvZh>lVo0f!7aO;CR=+ zTm7v1Nh($l0J60dV0a#lzoB*;D2?){)Ut)rk#`==9a-AU98cqsHP2Clr3<>)x|P#S zBn`gt1V|BG>Jn14-6_XnYIaX6cD{GaPHlP22Yt;YU4cBC{m?Z`=##Evs*rnk;_Piz zL63DU_cmrv*K%)T_IApB2_^cn>*`|3D6D9Uo_$b+yw=r^mMzx|f>+i zjPE)%O|Rn|;5}}g@XzTrEmz0+j^?EQey*nF>-d8X*poZ&?G|d3Y;YHaPiR1cP%7n2moKX)nRuWfKBD0Y3C3knjrW)4;NR<3qzL z8H**81nn?kmMo zg-{$Nn}{*lU90dq@Q7I7(aTH0bp`>llWkqQUO~ictdofVpy{+7m;Wxs% ny-AZ`;C<*k1LQCw2*N!y{0BO94~_qd@(<)uLA#HD1c(0tYPk7` diff --git a/praktikum/__pycache__/ingredient.cpython-313.pyc b/praktikum/__pycache__/ingredient.cpython-313.pyc deleted file mode 100644 index d22c0acf8f158c5a3a6760186a110bcf80c37050..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1394 zcmbtUJxtqB5PpvB#4(A|Hc%z$VihV8sgO#ArK&nq>d=Lu7E*>tPiZizAvodL8Nviq zqC%qT6p5i*m$F4Is8JDg>(J?WLtZ;|OB*EC-n}FQ(VvBreDCgi@7;ZO_mXZrt`m?# z=9~REM96n^2BP$hZVHShNs-&cBpG5#vv3lHk#Z<2mwHZ5hx<-94@Q#|2$M|0LZ-xI zGsF~AE~usgpIQjdgw1eHF8+ys;4L@`%pkJiZy`hE z7bNWS+Njs4S%KmdSFAv-F}q}y22;UC;~Zr8x|5)qB!8^}Yfth<1^Xf-f3MP?7$Ie{ zC(UK$K*7ii$HgL`vPz)1R%MZ?h@8VNW-~y7ncTc#)F8Nf9n?BG86Dq=o{XkIjb&czT>wcC zW|miHPU*Z50MQmDXTWHZdGZX_%Q8V&6tJu$YTJ|82zV}DHCPOE5G`9C75xlGFAzIN z<9HrV0<%Q&&D!=F*U~Hjz*WeIw%)+d7pQ2MR1ElHiw58|INco*X>2#Rmbx+#{LQn! z5)tq1G7$umcm@9mMDnaWd?O5_&1GXaY^(!@ty8*EU8q;kj#0W=FIM_H2}&1j=6V&| zv79PwM<`vWmcWo*j|J*trCRhDwx5ZNH_^gT2V<1FUeU8lwCH)veqQ%1m(sl+A2C&i z??NbSuloel7Wo-cRIL+})m!i74uPe0Uo7qVDS91UQZu`=rv#QxSW?rw<7lV*_8Hou sVi9)^UX(~Oftm0*^q!OUuvhLQb_Xz#9XC6&BuQtXq?G#0n~PVhX4Qo diff --git a/praktikum/__pycache__/ingredient_types.cpython-313.pyc b/praktikum/__pycache__/ingredient_types.cpython-313.pyc deleted file mode 100644 index 608dbb27b5cf066eb36d402c17db26a4b59a8f45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 375 zcmey&%ge<81Tj*lGWP=M#~=<2FhUuh1%QmH48aUV48e>=jKNGrOzF&;ETu(2VXh1F zFKoTo0L1MVc3f<{u=~Q+3wtl@xUf~>Vxz*vCLnA7g$)<>T-c!iWbVDN8Km^W7LbAq zdx6sXE^N}{3U&;2c2#)PFd3-l!oG{m7aO_UJbipT{oKKVKy4d9rUU6+7dCL+Vg;+e z#ST^Dr^$SaJw84qKRG`BmMBnDkgJQQt6xZbNMwL(JVdQHx-eAlN`}uMKi;y^4=qkD zD%MZT%hNAR)Geqi$;i*sEhx&*N=+`&FDOdPF3HR;&DGD$OD{@I$xO{Fi7%-vNG;YY zsJz8tlbfGXnv-f*1PVz|m=#L^i4V+-jEo Date: Sun, 5 Apr 2026 12:58:37 +0300 Subject: [PATCH 4/4] Delete tests/__pycache__ directory --- tests/__pycache__/__init__.cpython-313.pyc | Bin 143 -> 0 bytes .../test_bun.cpython-313-pytest-9.0.2.pyc | Bin 2671 -> 0 bytes .../test_burger.cpython-313-pytest-9.0.2.pyc | Bin 10847 -> 0 bytes .../test_database.cpython-313-pytest-9.0.2.pyc | Bin 6774 -> 0 bytes ...test_ingredient.cpython-313-pytest-9.0.2.pyc | Bin 4479 -> 0 bytes 5 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 tests/__pycache__/__init__.cpython-313.pyc delete mode 100644 tests/__pycache__/test_bun.cpython-313-pytest-9.0.2.pyc delete mode 100644 tests/__pycache__/test_burger.cpython-313-pytest-9.0.2.pyc delete mode 100644 tests/__pycache__/test_database.cpython-313-pytest-9.0.2.pyc delete mode 100644 tests/__pycache__/test_ingredient.cpython-313-pytest-9.0.2.pyc diff --git a/tests/__pycache__/__init__.cpython-313.pyc b/tests/__pycache__/__init__.cpython-313.pyc deleted file mode 100644 index b7e7e11f19cc39499715b6150f2cb843fd97527a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143 zcmey&%ge<81Tj*lGC}lX5CH>>P{wB#AY&>+I)f&o-%5reCLr%KNa~iJerR!OQL%nv zUY>qoqHaNDNk)F2Zb4CgR%&vIeo1O^NwI!>d}dx|NqoFsLFFwDo80`A(wtPgB37Vw SknzPJ#z$sGM#ds$APWFzE+F3k diff --git a/tests/__pycache__/test_bun.cpython-313-pytest-9.0.2.pyc b/tests/__pycache__/test_bun.cpython-313-pytest-9.0.2.pyc deleted file mode 100644 index f9cfd9084c025f229a4986244187fe5cf4a6e7a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2671 zcmeGeU27aw^xm1-oynRHl2T2gg*BuxgJiRfiA~k5-z20^A=3pR!ez3Vq|;7jrgvu1 zXtpgXlG29?k{6%)nz#BUiv9&>8`8=}@WBVkn=}-mPo6U$yIC6ico2N>GIQ?vKIfjf z_uM(?=_wExZ>dfD5+&ppB(kBT$iZ1awuwOudX8`!&(eY%NJX-s@LUlk(z*PC%GDwn zBqPL-hl!!gNQphy)~KG_N8-Frh5Sa{ttFBKLfCj56k*yX@5LdwWKb>}(lFr)y5l)R z;rX?ko)_u`D+s~KKIT`;tkH!EuMF>j0-?9bQcGq~L(0-|X_YRfsi9Feypa(ylM*gO z_TH>2FU=F;RmW5A$`6DrWkn&2`OLCC=OqqU_h#$Rg6e_K<@G>v>onSctq zc|$d{YQ9WkN?q#DGCve`Amg=XsDYaK%4Q3;W`(*EymE#57uJa0b^hTf7)4(;uSa*9 zA4lKA{2gGoiqTiiPoi(5Z=yTJ^Al6$vc3N+6l8}!k}4IQemH+}+~1higThBCQmhma zo61;#q^zc@>LfZ{Q-tj;q z5Q8kZ=+&K-Se30g-m>X1*Ic(m7Yoc)3q6S5*W(0i&wZP7kBeh$)#K}C$gB^1$8^mQ zBs-c=0?S$DxD&+_7%WNq)M4U3n#GxK@4HBZpq&e194HXPQXaYFNV|RPf9xB$)wt1!w6U$m&1*2-9*se>Z|uI7K6gQQtwkls9`J$|ui2(h&`1Qk zZ9713kG9lX$USZB0CM{G8X5h+k!20yP)j+w<^7i%8OO82yAa?V0zGQ(pZ6$i0FSk( z_+;}Q^o*UBA4B(P8`AK2p%p)lBDiG;e+t1Mf*}OM2;kBp{22r%0Cb#deiAsMzvDp0 zjcDk|vx*{IW$*=nBaZ6kjm=1#+uFQ&6{hIfxdb-*=I(3ha~H%{TU3JV0S^vqs?lsy zDA-H{yKOr_!F5Z&h1}ETI9|Cs@GGMVjm4#5OcWSf_g3nT1$Z}OSL&vN>j0{cu~nM~ zp<}z2>oLa1z??r1KpbZ*2%*Q;m>GuLUamulKw$zEFi2cDj%_Oja6OR#ztU&qfh6Ug zd#Fjdd75aVlHMh>>>7x_kr-mh#ZgKcHZ=1Rx8CP=2$w*MCDfD`e__$%bMta&U#_p0 xpsU7rQIbMuT0(mzS@2mt3$gKUB*5M9n@lPFnUGJ(9y#%QUZwN&0YMn&`3DsuB|!iH diff --git a/tests/__pycache__/test_burger.cpython-313-pytest-9.0.2.pyc b/tests/__pycache__/test_burger.cpython-313-pytest-9.0.2.pyc deleted file mode 100644 index 07b02a37ada50b22a72eb932c0182a12f1f6b8de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10847 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 diff --git a/tests/__pycache__/test_database.cpython-313-pytest-9.0.2.pyc b/tests/__pycache__/test_database.cpython-313-pytest-9.0.2.pyc deleted file mode 100644 index 8f49f03c15ed1df990c6cc2d8a6344b56455c5f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6774 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 F@qbgZ#}5Di diff --git a/tests/__pycache__/test_ingredient.cpython-313-pytest-9.0.2.pyc b/tests/__pycache__/test_ingredient.cpython-313-pytest-9.0.2.pyc deleted file mode 100644 index 0ebc690703c2a024612a00897ffdc78afa814eb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4479 zcmeHK-ESLJ7QZu|nT#DLhL%7Z3K%zKW0EFmNSc-;h>s1WEt^H2dexOHhN&}7O&yQ9 zGgg}*q_!X^0*R+S@PgQtR%#!RD(xac*`oaqc81WVx?;6RJoT;H>}n;RIOoo1s4G5% z5D$#(Gv}OpKJL9U=iJ|{_w-~4T>G+KeL^DSD-^;DWPYtb2e)%XBbsoKP=VjY11Vd~ zlLHc!^ZtlJ6&Mi@b{$Zu%5|xO=_#<;LJCBa`iUk_ihe+vSrm%Obrj}{0?X`gE>d%$ zZZ;i|gomrXl~2_`SU(BOIdX(gfQp(xQ<~UMsHCNU%14w^Z_>@@OLyL?)1)J5P1Y2x zYg9Ut(Nrz1Wk#h@F`S&%-A^V1H`=XbX?C%v*vonknYI&8^tu8jRUr|+3-}cL*Lz`= z=SU?Qs|2eiuz#93i8gRGg|bizci2~PY847m`esTKtf$J-qt6gxl?MZ>g?|!K!Swtp zg&Pzq;12tpD$5gsCLNxb5GR8ynq1+}8VyU?gn7Wmd8a|MaPNjJ9X7W>%EDx@%5ZMR z-5b2_=#(Y)`n>>iidWLvS`2f1r)BDUTS}p&ri@5CVFpcj9W=G9j0s%os%#Etp2&Jv zsEhBg2VG&T@NPnd%nD5r{;64^b!d?k)ARqE0VnrQ?x)_X-s!w|#yjO+bpPglP`_+RqQz~CG1hu&%T5}15^JqH0U2w#h{vqfQL-;Tl7@mHe!4JXN$=rXJPa1&O6v%VS8!kxU?& z`nuP!ZIe1Y{9fkX&gw3*Vdz`|x*bo-dqZY*$9eX(I3H5z>S zEUnu{&BO?-_X$3&y49Sc)S_&&UbENo-4vbt-nPi)d8tuW!c4IPsF}sq& zBS~R*Qke7wKky!Zw!W}y%*MLQ2N#hX4uw3b;v-QPkW4{OF6#1g>fzR`k?o``7vAo*1ayD}< zw{?@ob~m@F{lqptsRJ;8_}Lll#(p&|nLatw{Qjz!^#CHYE2UxgW^`KsGc7`Ww)& zZBhO5a8a#ui4EPZ*gF{GCfM%+3CsQB%0I?e`<@PpeY=<2?y5s>Zu@F(2QcS1apL8M z*3{tl84mA=M4!2$4q>SWCSEMT00i?#Rui7UpWhTYM9funh&~LnTY1P?ZkfY*Ja>lk zd>zAiXwJ~!%!NcBq-ikbkC(~(_-OA2h5Hxp6dsjuQoiH82?yYZdH3&dy9}=b9-W_f zZ}TG))R*A=1QAZsi}hi^BdqJ`{m(uNCsS31K;ad^vlqVw&kpY@$Dm9u%cTgeg{}a; zYB4ynP6UALYzTVx2@8;^5`no=1Zm<30Lg^13Xn`Z>?9yrs)8>$ze*7}3pEJjLL?eN zvN%ge2v?TF+7D;PAzAFz8OTLm0LfB`m2|dN!W`de8G$2B`pH)sfw&*E(#Q)|Drs^6 z|I+w9P)-N%FH?!W8xkwr6hD`c1NfH-_aeLp@J|8gcM_nVIv;keAA#Ahf;M8d-9_6+ zGn+e3On`YC} zb&9n>cLHIGkGz?*WYFWR8}K%`IJCZE`bXP6-^T7i*QD5LSf8%j4uI&YZaCm{v<=4> zgrCLm*xmV)qS)v-LB{?Akk`pgQIr>jo2n=e-%yE?eWP-^vL~(*KE33>xP_4XVzs!QU22_$}{UZ;NWvwp7B#+l43Vg!w&|2 z5VNhizt9mM+5_w#q2>u%cTAR!RIDq|`LFqt5Q*K@qQ-Hje!RUj5~FgzD*8JO>G+D- z{+c)L15;=G=kpl-9Yn@&VjEGxjg%k=|0d)$@@mh&$j}#L@c+stVdf?Q!k6?7C-BGA