From 25079dfebe1dc1d8489d69fc0606e0735353db36 Mon Sep 17 00:00:00 2001 From: Alex Goldberg Date: Thu, 12 Mar 2026 16:34:04 +0300 Subject: [PATCH] Task_1 (unit tests) --- .DS_Store | Bin 0 -> 6148 bytes .coverage | Bin 0 -> 53248 bytes __pycache__/__init__.cpython-314.pyc | Bin 0 -> 160 bytes __pycache__/bun.cpython-314.pyc | Bin 0 -> 1575 bytes __pycache__/burger.cpython-314.pyc | Bin 0 -> 4139 bytes __pycache__/database.cpython-314.pyc | Bin 0 -> 2783 bytes __pycache__/ingredient.cpython-314.pyc | Bin 0 -> 2024 bytes __pycache__/ingredient_types.cpython-314.pyc | Bin 0 -> 388 bytes __pycache__/praktikum.cpython-314.pyc | Bin 0 -> 1393 bytes burger.py | 4 +- database.py | 6 +- requirements.txt | 7 ++ tests/.coverage | Bin 0 -> 53248 bytes .../conftest.cpython-314-pytest-9.0.2.pyc | Bin 0 -> 1490 bytes .../test_bun.cpython-314-pytest-9.0.2.pyc | Bin 0 -> 5100 bytes .../test_burger.cpython-314-pytest-9.0.2.pyc | Bin 0 -> 9954 bytes ...test_database.cpython-314-pytest-9.0.2.pyc | Bin 0 -> 19270 bytes ...st_ingredient.cpython-314-pytest-9.0.2.pyc | Bin 0 -> 7008 bytes tests/conftest.py | 26 ++++++++ tests/test_bun.py | 18 ++++++ tests/test_burger.py | 52 +++++++++++++++ tests/test_database.py | 60 ++++++++++++++++++ tests/test_ingredient.py | 26 ++++++++ 23 files changed, 194 insertions(+), 5 deletions(-) create mode 100644 .DS_Store create mode 100644 .coverage create mode 100644 __pycache__/__init__.cpython-314.pyc create mode 100644 __pycache__/bun.cpython-314.pyc create mode 100644 __pycache__/burger.cpython-314.pyc create mode 100644 __pycache__/database.cpython-314.pyc create mode 100644 __pycache__/ingredient.cpython-314.pyc create mode 100644 __pycache__/ingredient_types.cpython-314.pyc create mode 100644 __pycache__/praktikum.cpython-314.pyc create mode 100644 requirements.txt create mode 100644 tests/.coverage create mode 100644 tests/__pycache__/conftest.cpython-314-pytest-9.0.2.pyc create mode 100644 tests/__pycache__/test_bun.cpython-314-pytest-9.0.2.pyc create mode 100644 tests/__pycache__/test_burger.cpython-314-pytest-9.0.2.pyc create mode 100644 tests/__pycache__/test_database.cpython-314-pytest-9.0.2.pyc create mode 100644 tests/__pycache__/test_ingredient.cpython-314-pytest-9.0.2.pyc create mode 100644 tests/conftest.py 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..b17a04d62f53c8039ab96518a2e3da5516089c3a GIT binary patch literal 6148 zcmeHKOHRWu5PdEM0p(K(39*bgKqYPvP+72GL)jPl5mc14gtVf&oPh&y2rdY3#s)cQ zSg=8WJk|I)&ODF(;@AxUb21wo0Zjnwbiw*2iwcwb;!9R@ExSaceT1CAx5_vnx0Rpc?xCDu0QoiIzv_yOxf zUS(CxT3TZ6RWiF|FF3y;M^KSpHSy=U#n_bNy(4eLa)$dVo<0Fz%MD!M6vt@eoY*33 zP*fkHsLyEX93Plrq_ulDR~cu9CuBvwD&_O{ajClA@kt-i`uG82t$wl|i}Tdy>d&*Tvq~^8#_4+V z<2aN*Y@#G>yXm++o8V(a%3}sLtC{R>j#a=e${6GEr z`@cvES3!ZGz`s(!)Z3jlKhJpRR-2r)5&eoTCULn%rLb_vu~y_LKA@}dUL+M_>@c^; R7FzftpfZFaDDa~SyaU++#K3p@w!dSZ<2!3{ zhV*J7zZ511NQ66GSL84cr^Q!IpKo!WyKNpMRvdOZtL4=fzE{@j3k&iU9{XhbZF*HE zyrBbQS59t`P}}o6!upnPyX|crteN)6!?s6uUJ4U$eXrjLJ+tSyv72t-gpTK${1R^u zL*BWigKGj>wh+9$H>7n|ICM5CnO-YLXI%IeCDZI_;Vm-G^)jsEg5uItIJVgx_FIJf zxnX}GDu+rW7Y@C>O72xQ^ipR(bKTscF30{(RA+`<)M!#_=sM?zd{p^s=D6fq?1t;D znZgN*fG<~y^=~Z55=AAy6rAtTM<>f3hF-jHQRQ1rS{aw`DrxoQW%rVG!GA7jI?4WN~C{^5cAG{es=2-eh1qJ~dhD zgOd@!6d5}v7vn#s(^JGN5ZZff?Iy^QiRDSR>dG8r=&ku}#_FBD(oA)abJIMTvgj zc01{KC5GWdmHK|sIK_36PJ{}YE7T|hYN9u2W}@j?(PL%$8v|k@RQq-(Y3`y@a*7wX z`Au@kXms2TdFb@HDYC@I#DR6u4$QXC>0~;V#)c8G?HjF1WFDn6Ss$8sv$~>uTI`4_ zwwhusX2~V-Q7&4RwfcSc$9!y5ZzF$WBu)O&^i+!6ks_ z7>eEG3Zh3$s=bw<%W|b3kjkrKf-kdABzj>10T2KI5C8!X009sH0T2KI5C8!Xxbp}o zazWO_{J+5dBC+eV!U6&y00JNY0w4eaAOHd&00JNY0wAz22^aPp9`IH!#@3}e6vCt+VmQh<+x60StRj9nI!I=ULxcHnJCtz)un%8aL8uTJE@ai zeR{pIh!yS(cp$th&E}o>eS6CeI7yt+NaE1+*5tg)sU0hlT4j2*v2SG3LvtjeOfS+J z`t&D2B=DF@0*liNf-r-g({UEzW?fSsYH8s7oL5mSkhEozvtSEFKWdi9jocTEzOB@#iF-V zRw?y`(gT0H?ka{t>4S4Wj^6(D)xNA1Xm4Km{@X>F619pfp8r?aOA>pF{hs}k=Kg5KmY_l00ck)1V8`;KmY_l00gEcfam{HBSQfY009sH W0T2KI5C8!X009sH0T9@C1pWuWchJ}X literal 0 HcmV?d00001 diff --git a/__pycache__/__init__.cpython-314.pyc b/__pycache__/__init__.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6b03029ae8cac6cab6f0ef060600978d21b61086 GIT binary patch literal 160 zcmdPq_Zz$zvW literal 0 HcmV?d00001 diff --git a/__pycache__/bun.cpython-314.pyc b/__pycache__/bun.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c826b457821e93cf941b28bebb1ea2c5fbcb1c9c GIT binary patch literal 1575 zcmb7E&2JM|5TCc}kG07cg%B`R>o!t^RW&OFNI66mLOn-xX@k@Xo;K@ESi0E_Z=Vmz z$s!1d6oGo+5Vik+Z=r44sA=*yJm1h>d+IHbCCrhTw|4DbKs?DaZ+t?>oeFN6FbSW515@Czt48LL;26_TGrj%^(mfw^zDL8wb9X>8 z2c&VAN%I`UcwXif;R zji>mPvie0Gso&L}I%scK)ywv#I#5ULC+aV?Uq$?&{amB%rut3oq1>GN4Gy3*%7oj`79hmj)YPcEW((}XS<`HLqc zc5WS$YE5dZgKqHX()~qMp>1_O!A%oxPegqW+^$A_s<5r5p~V(jhA5z4(6?%4noIm} zd4MF8cxGlsjG#^}&Vwkxo2MgLshOqAq<|*8I(vS*^lGy5tSrV6_}}C7>Vi%cJ@0xP zn_*>!$YWSq5WZ}PsK$haX3Y>ZI^qv*#FA(;!ZxjWrNcEhf&OO6X{xmla=f-9MU_zNKsF@iKnq`TEwnvd#}` z=)c4V@gkH@`QF?tK8}#mih#TgjM7P&dl#Wu9{AcP~ z25f9>Z7A!4u0ec+ITrBG1^bIw#QrLCz8cpXA?0lpyIy8ZR6ov7;t3Br;~ zDBe85?mjWhywxq^@aYNcTG(30)L-2K()yaX%`QYo7cejB7Gzj9LG#(Qz7jQb>FhKo R$0lQ}YmBi<2T5H(t=>T472p znb~Dy=_K1hEvG?^TpBsZK>`XGx+zK3x^d#V|G{qQn8E@90u(*uW|csdW8a(I6=_Pf zWArF|+ZO<`98a`rzZ--$g?Hi636`xr6Fa7|fA#B*mQ~b3S7D z8AoIsKjQ=#C%`xo<4BAXWSkJ=1R1A^al(ufVw`5iXH8RTzSmu2&o z`4_gpybb)Tpy5;CA^UUl6Ii|qT5kdUoUQm+9t8dh$l?5_<_Zel26?9SighUlyDe;8 zYW+?&KZ70r3{!Vx^KZ!0ISW0ZWaiUs(mn+BPlXTw9Uz3{MwXGk-cP@ zn^@*;;e1K6n{u0hqhna#jC{LS_ z_<+QC+kc@zr_+YrtSFg$TGz9=4A`WjT;CjxKxc;)C9P=%BW&6%}xp6QYMawJ+iqvCCJ&U3HQvCk}v6$1c>P4*CIn8)H zzKC%>zWoSn|B}wSt@v(6oy^X$J-(BiREHtQF!ZqN$Nf-?7lUn7oi6-Ft%tA6g>TCY zGZxbc5DZ5u;XPJ(&%(?92=CpBoe!kY&D8-QkILy3&oY~b%obRXQZ&&HYU*2H6F^CS z0N;-Xat}!9JwV*_9p@0jac=4K1J-|Z+WB@&t&c!V1o)P!n88mHvuEUOqZ?iZjja~l z-c4U0<$@dKISneYVGG4V5wKt-1F@iSAUaw+;5n_e(Pf>k%NqC$lzp&rYsd#H@k3Vp zP$mAH6@TuoSdPDNU;61*Ke_?;?P~Kf@01xoRgDtW;HD8T7N8<3UI)hq!i)+C_J z!=Hg|&Rb{OWJACjn&+1=JbOolVeS#$oj~tSa!I^t8(ND0RnTKi@=3hT8=AL|cX1`_ z;=mL2WWW{yv^?5c->B&6>LD+|ah*8Y*19LSTI*~OM}^uB|Kr^7Ly*MU)6i;KM){hK zR3M3uyoOdQcaQ_ptbgzbG1iihs0^FXgFtLHVaya&Tg(^UQmKtvhY+sLL*w z#{%^Z>;w5F4=frtFD_lI>^orXJ5b(t&>T2)>lw5AxcU7P^MQx*to{1LwTXq)ABDvi zEB((}{m+*Be_WOiR^(%re5@=VH+xRp9l85z<>V{Y$ydrJUp1dUYo2}0+BNwqKvQHnR{dxAvM+FH0#JhI35BTJWKcNW#-Mq$tycY$=apcoe@`O6T2~RzpLX{uI$>42hS3mHYB=wb?WjnG~sgGdrcutL!jKG&L38IzhN^># zwz?O2M$P9H1!^LDZDPqe=F~aNGl~S$Q2#lQZ>|FR>%1sR|8C*MA8ttS631&iy5Wb{ zCys`2)Q_Wn9F23%Ex+N1YvTdl9UBp-EC1OnE=>PKEMWT~aPX;!smS7t;zhvXgyQ~8 waG5yp;akU+4m*GyrBE)|`&-B7@dJV5xGzccU!?s@(!1f0aeY-NhfXc~FLd00hyVZp literal 0 HcmV?d00001 diff --git a/__pycache__/database.cpython-314.pyc b/__pycache__/database.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cba6f5eb6dfa702ca5814fe12125c9d2f0d9246d GIT binary patch literal 2783 zcmb_dUuYaf7@xgAdvlk64KYokwYM?;;mDs;TF{3oH71&?;Yc@^Kxxge+1n&*H@k6W zPD!4wqS&I)R}m2k6&jyfv8ZTc9`m?IP7@Z2g80z4)_}>Q-^}H5i9MufhP!XRneUt5 zeE;U#-sYwRg7L-mukEiQ2>mV=)d6ccwz4o4(G=2^3>s0mk`#O>6B-Hgu;jy;$Vik& zB_GMCBQYKu!5k-1JL*Pyv;*nt$xsE1$MskbO5uBAnNottsLeRc;lY9nQzGNeQY&v; zE>DGm_DuE-eRwD{oXwHkxv^m~{_4bQ!$HSCw_neUj>4WiMH*F~zPv}!!eb-jyM6)wo)7ArjhenK3@IN<01!Hj~( zhmEO%?}vlgSn(Eoj~$xtHB5YHzSl70^?cV8@ZcJj;?s^{Ueu-w?o#}{Ih$LOjX|#v zjNJ#dyA+@ExW0nEn|ME!JM-lyCMiwv%npT2RLuL9_Z2_29z1IRyGw2 zB7nt$279jwu|PEz7A!YUMK`44Em2hv@q(72eKE_KVdCLD8@!yJU>0R*qkqVnSS^psWTp(H+axQi0K%N z9!IinL7}Y$U{RU5^{wf?T%m%Vll*Nl;{+Kz52~8!6GQ2ZCISTpRx~E?IgM zgab z6#t2vqZ7)u26cL06zjGM(f>=NK>8$)31?KkxFF&nUQG~&LX%G?NYr8@yJ&Evwn5;C z#cF+3VlATzu6$GYR3$90&=UYFEM}rw?uQjcxr;jfKy7zX_pj*9ZM93$wh$0`_-_Jd BHyr=~ literal 0 HcmV?d00001 diff --git a/__pycache__/ingredient.cpython-314.pyc b/__pycache__/ingredient.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..240f99cfa91092266fc7bb9705a2ab4c16ba78df GIT binary patch literal 2024 zcmbVML2MgE6rI_%owbuRDM?72R$_^(QbUO;1qq=F5aPlmDho{xh>o`FO}enz4YT8e zdvXe*s#L)Vi3)CT+$Hy47^-j8(UWE(6{I34pKJ{c%)zfsB z{zdKt#eWp>ec<4eZsfF5Tb@XOrcAM%gk zX-J!(dCdfRau4unvWeh;BcYlbewK^ebwA5*$iVZfMrI~TX8F}Hb`{JDtFc^nRW>e! z7rIGO4?HDAf|eFq+1s@Xi7%6y`|?^G)-U;Tt@d8*HP(Uuq_)vim*c2*UdEsLo~nK1 zCZCBjwZZL+8_jG?2sesi*vXh?1<>QJ+?}@=Am|NgP&TTYRZ%W;tX?jsPmriE1v( zC4RUn@f8Meg7=*Sk>fDPEFpp@0GhI?M*`}C6wFcB*JAglD>sVwr{_S;%zs^ylYl<* z*gfA_+lG}VJ$8+Q$A-+qwyYq1)sRt@OHA#mAxEK;W1xD^MqbJzh)#e)pOa}gXz z?=w(0U#D*16Ko(s#)!{uRaj={dke!|g~?}N4nAPGTU?_31dsMODz5oT(3i`mhe$d= z$tm<1Selsn=F0Ue+A0s6=|9_{2$FMMUy9H@ofdqI_7E*)7T(PNJmbWo3%qN>#?L8|RxzI6)lyKq#d(O)>CSjor|+0K8#aNS}B ztG~q#RpY10e2YCkJ|#anKK_;{P*aeri>Iq!NPI|SfNMNNtvI?cRPRcL&mdpka@7wl zPAw|dPt;A%&q+y2ElSsS$xklLP0cGQ)-R|m$;i*s4=BpdN=+`&4@oS}jyKfL%u6py zP00kRh%c!uNG;YYsJz8tlbfGXnv-f*1PWGA02WICi4V+-jEo3UFdWDQvLY5eEaqTV!jgw!PR<5#(8E$r$%b$! z0rGMbV0Am358l}Xph9bEU|XF9%fk{hLYecvWavBNk^+GbY!_24rdtkGa=L}87NSVW znAj|tu0^q$bE?Ry*p`FK!(5)CX8|Jp&Q1ij_bs}fi(jz`wwT|O5hoPDhUBwckNg4Z z4|3i|BfnS>HbOqjbs-5 z%fspM&N#_^J}Qd53tLk@OZ#!f$6WjU<-f=ab08T&tj1bWMKaZhT^yM(_e{HHmTHz! zYB?^M=C(bW6qhKjh0g;f%u2=JE;3nf>{)*jQ^@+8lA6eNFbP*_5@eMvyNQ#KD3#$@ z61n7!DuLb>!aTd{vbmh0LRR$0u7zCPOjR4TO36Z1J<}++>U5A@y}6Hf8jik!8c(b; z)*qSfuCb&yk-3ZQ-Bx|Exldr-v>gDa)zAL!BsUt_aJ@pkr?3?kaA&Gzc445EpC zB-M?ijw5{(QPSpFW?D?@h*&amO5q+&I}o?3$@O}9!$_pO6tMQzN&Rq?O45j0uyKS5P&F#!OmtF zYsoPp+(Rqo*Tg4m<>n#rm=X5BK3 zw*W;MJI$&nck7Kxt7fgB8EUfU>!#>(Dhh%y0MT#Y+5pTAz^wsT_$h0`%;^e%V+T)r RV(b%Cp0EB80gQX;egl~jBX$4) literal 0 HcmV?d00001 diff --git a/burger.py b/burger.py index 2b3b6a88b..3f71aaa29 100644 --- a/burger.py +++ b/burger.py @@ -1,7 +1,7 @@ from typing import List -from praktikum.bun import Bun -from praktikum.ingredient import Ingredient +from bun import Bun +from ingredient import Ingredient class Burger: diff --git a/database.py b/database.py index 4c75baf71..84d3685d0 100644 --- a/database.py +++ b/database.py @@ -1,8 +1,8 @@ from typing import List -from praktikum.bun import Bun -from praktikum.ingredient import Ingredient -from praktikum.ingredient_types import INGREDIENT_TYPE_SAUCE, INGREDIENT_TYPE_FILLING +from bun import Bun +from ingredient import Ingredient +from ingredient_types import INGREDIENT_TYPE_SAUCE, INGREDIENT_TYPE_FILLING class Database: diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 000000000..447976318 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,7 @@ +coverage==7.13.4 +iniconfig==2.3.0 +packaging==26.0 +pluggy==1.6.0 +Pygments==2.19.2 +pytest==9.0.2 +pytest-cov==7.0.0 diff --git a/tests/.coverage b/tests/.coverage new file mode 100644 index 0000000000000000000000000000000000000000..2ad4680a065ad8dceda6701f809f720a89edec88 GIT binary patch literal 53248 zcmeI4TZkJ~7{_NalbK95$ywdjuwCn(KFD@)cVn#J6?C;lYpeBA#V6BAa&~t#nc2=v z+U~<5(W1VH?;`r54?g&+A|j}73X1q5h$4tZK`J6rydZvOF1fVb;zmlf{SV1p&Ybg~ z@B5waoRgDD=Aj4nJE7o9p5L}ZzDpTbR8_g1b45`sdKc-PE+*~h=>cukf&GnkEoI^P z-;3-KrC>a&u*Ztq*nDBR@blP9g&VDh#~gFcTA&kHKmY_l00b@?0^J7+W_fZ_eQG_l z>n#!bc0>5_x_IYtolyd_Sg6mVr?$UkX$Vk$HF*)M1-^K z${c)WQhb*CVoCVIZHOSYVyDxb&CfplWZo=KOsLO_$S2!x&}(eS8%pTAvUiDu8lK;j z*4KU8ZLEl3j@vyC8y?wtER4PNy>=z^c*}7kH{HMq9na$Y!_Gt`qXdJMC3jIaDIPaOiDR za-*`LmpJ>6>*g$V+4py-I#cAbM&nW)*E!q~y~>~C{gQK$8?HCUr4tkZSC1Lxn-sai&P&-6y2(+h!GwYQt^P8w!; zYD#^|ioz(Vtz=^kg-}|PXX!@MQ*B`f9Y5_z&ech#CHlQ&+D4Kye~?Yh?q zqxhAFQFzL+r*Cg8&_7PuQ?A)4J2mh7y&!OCSe3(8aC4fH<(UDFA8WW$-G(rtZ>U`=W)ADM}4N(UF&%^##jm$on3X}4{+nT%I*7>-q`@0X2J zUMKEEs34!AMj22OJxwzeP0q?5E7f0EB_>j}Z8ziQE-Pg~@#u;;LoObTcH5x{owndI zOJqzGSV!%EH+(@Sld&{1jEJqAZdELEH=RlQ(Ab;V8SPxLBdfSpm1{Xm&dHB*-D%Y< zUvrJx?IbNY?wo1?eG+KfsjtalW+<{wJJ}Di1Jp~?N2I~vlE4QT%ER~yvPX=oy&j`W zb0r^;^0RV+ud+WBdSL+p5C8!X009sH0T2KI5C8!X009uV_y}lfMm6R9Kf}IJ*hyMp z0Ra#I0T2KI5C8!X009sH0T2KI5cppbC}gzlEd5!?wd1NbHJSVd;D&|ju7&IKD5xLbXoC};?tCf1q46<1V8`;KmY_l00ck)1TJj?_vLk^yQA`OK>um4 z*z?O?t4R+&S+4B%8lARq!=SRd7Or@1<$m9LTr|SUK|6S&R;`30pmTCvqX)v!lNcPz zO#gG=Ymr`g^Ll-eTDZ0<0+L$Hk(9Z4Df$2Qx*Z6T*l&`=_RUKScsHPSr$K6Cn^)`m zMkd{sB@u1&BK3|>4*?>9dvp?*+`PbmPd%+$G)-CGyi~p8k|B3x$dHN6mmV@C5>o$- z5IvP+NlKDM^8SCmc)h}|E4^0yv~;L=oW0Gw(uvaLl!yfcKmY_l00ck)1V8`;KmY_T zaRLYQ?hf@|P2z^8xA}YYZg~W~zDRHWZ{4AH%@L#qX6(6p_3ri&BnGCa18U}Oy*oC7 zTHiOCqZ+sCU2O!B-kd$VPw!5SATZ!lPfNd5TOUCxp8soi>)nYFN)H(#=l_|zNXQyB z1_$Qdod-kHID5C8!X009sH0T2KI5C8!X0D+60fTn6nQQrSo*`Er%uz&yvfB*=9 z00@8p2!H?xfB*=900>-!1T?K^MgRY2FDUF3`+3_rn!Nw7 zj9+k9U;qe!00@8p2!H?xfB*=900@8p2!OzOBp~nqWBz|00Ye%DKmY_l00ck)1V8`; sKmY_l00jO61aSZVKTruU0R%t*1V8`;KmY_l00ck)1V8`;&NG3(0gsVt-2eap literal 0 HcmV?d00001 diff --git a/tests/__pycache__/conftest.cpython-314-pytest-9.0.2.pyc b/tests/__pycache__/conftest.cpython-314-pytest-9.0.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3817987757020588f60c41e23f4f6b6907943ae0 GIT binary patch literal 1490 zcmaJ>&u<$=6rNp=*Bk#xNYW-vh~t#1l{QUm5hFkdq0mt3ptf0UTNj~HYqOb{rS|SJ zyW0}DEI*_kdO{rF2G?E?>R%G8mSRSr76}gA+~(F(-;BMRv`|L!+i%|c_W8}5@9pW) zLKeX){dCX1EhA*{O}y|B?B4?rq3g(y)=?mdr(8>gatYONkS+}(N}xbQUeDCjKrNw< z6@4O3bnrZmjFf@PvXOp68h8z58of3o1lj+7%g7w!a zvVrQd9(OGc!_!H)hE$jIkwc*&jC1I@7sv8wMTY$Oe=`p9U!BlL|1Vybp)Ydt%Ok&> z`}2vm%5XsZKvP*-G=hQx5F2Tdpy5&5A}miy5K^ac(`nFAqsXpqNP}dlFvd&%(C3k5V_e{8}6WCJ55TqY~lnyZ_25K1-4eX;uGpu%;l!r z+S(+vS$WU3!Zznryq(|^*Qw~#{ghZi<+ADDXuMkCRr?job+$PwdpmR-k_nRr;C}=r zLJ!A}{ZRa_7=7^j)a>`$(ME51CED1-#SSiZ@nWyM^6OiB)wND_?SA#_URCc@_4`$0 zcjeOV(q+z@>)^RA)_O~?AK={VE}q?o?9WaL@0-xfb@9j75LJhu(mC(BmrSdFN(S>z!JRYI}I9gQvRqMDJvo?~Zox(Jp?amz#_>=p@iB_$4bj`W(38 zk3>!KPzervJQ;0XIORp$g{eCe(k7vr%#=-m=nMqtF))YgoaIh#rg?zNK0<%v;%~X} zJ8upv(F#o64DD86J3h;=dOM9|H`4&=aB-MEs4K8tr%cH$Y6pakBrdMhfiDX$b9%$1 z@Kq3y6+*`jL=N7@!Ej`@?ayH($UtzSmAu5eNOVRtn5l2K-L0@i-k~QU#1HM8VEQRZ zk{%%RE&8VL2b%9INLFvpe?9+W=I5E+>C;_l>5;5RFYl+2yxixgKOq=j%|DW{bcFj~ S>T}c|P5koE|5yejN_YzBwk~x5 literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_bun.cpython-314-pytest-9.0.2.pyc b/tests/__pycache__/test_bun.cpython-314-pytest-9.0.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dddf5a2d7216df24150fe4e6c464397ecf601b34 GIT binary patch literal 5100 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 pNqwC9!h>G~9up_;2_V?W{{jaUlfeK0 literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_database.cpython-314-pytest-9.0.2.pyc b/tests/__pycache__/test_database.cpython-314-pytest-9.0.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ac3cfd0f9a9a790bc296a792c9fc28b60dc72b9b GIT binary patch literal 19270 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 literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_ingredient.cpython-314-pytest-9.0.2.pyc b/tests/__pycache__/test_ingredient.cpython-314-pytest-9.0.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5001e408a8a372e617c0ed9da7807beb5fbb6c44 GIT binary patch literal 7008 zcmeHMO>7&-6`m!R+#&U|@sDh|ZmU0A77>}WsUK2EWZ9@yONFBfTbaICUQpCZVnd14 z>8JJ2ki?zHuOI^E-!Y+eg$vKER52AzJ|P#4m|$C0K8&7jlB zI;=@OD2D&VY_7)4um zc^ui&1E`aIoue<{Mlb!&*VCapPx>((%GfHjPWo<(V|VJQgfcm>w+m{zA=+xy{m@q`}hqIU3D-`3V$BrX3_K2i$7S znx;Xl&eMIR_2HPwYKEs69jd8H*;T2B(v!gGXiU1*&l)6SX7skhbdK^q&c)0)%Ye~$ zI!A5IV9eaZekHr?vmfI2XP?u5iR5#24VnqdVth(8da<<5+@WU)J*4Ndg@R6u63G>p zOIc#jW~kQZ*75}_zhcsGp$HZxZP(4E;#y&zo9c^&;#{_%vw_iwZe|w@)&p(5#GREd zu8b2>B=m^BP$bJ)OE-RADr8r(7SvFgw+it=#-da+PCxG#25iCZ zaL6yD{APpxnqj|?Hd$)z?d^1a^hb$nu(W0(dv>u{n4dGqV&ZZ!x3&x@#Y}*UmWnHh zX;S>Dk+TvrS@UiEe1f^nzOuV#Ck8+24I;hTDv}dMf*Towdu|b)4IWGNMTgQf6 z?j8PfsM>bnLG&~A#Bc8W>P{K=Zk(#9y}Q_Xs<`*T9anOh2e({y3oIOIr-3o(Hct7C zeUhsN2D)*_kSup6%b3xMn%u?CQ^iR(6i;FE?B$Mb3oIOI$1~pMJ-J4H1{%Oich!!H z+EK=R8$+B_)V^KpJXPFRRy$nLW!QThlP%mQq#d92HtWwd@-tBL7#0H6fW#(HaFBQk zKAvv^5LGHPRrAbY2k7(XOy&tU z+LB&o&|V(^#o*|fJtCzrd=0uWe-Gp?dOBL}s@)Z}yNuIiwY#dGVoYD!rWG~4i=C&+ z3?Tk_8k=Vk!_jTww2*dqcXrLTuO;LA>btPbpb3e=7++#Ak-iNk;9&T{Ss2aqtM@0LEv8kO=$uxXFHF2#Ldh8U=t8jRFAgn)dA@0&q(f$IRaW zX&eH2Dr!#|$IEI@RXq*NW*a9JHNK0Tr^>2NyQ0gmPu?-v!f_$(@XqX-ZC^{^H{09> zeg;}R=llQl3xkQ(%g*i7H31~XrA3JBHMcvB?-H6aA%GIi*Dw9QLkUg!AHAzm>Yz(l z!&)R0u7fVh0icU}gW`iO(KjT1&oQn=;e6b(2W(N{YkT@QoVKw`+KoKl0K3>nVSnI( zLv{^zVHW$1J2CuB>_X15IdlW@p9x1ycJV4u%5y*pzqH;DNMVKyRhb_HX&j+!kkT(e zO8=%@QTunX^K4_N0d(SNY@UT9N4JIhg|x%0yX~5WEx}+@_P6v&t{NDy<1yLHW!2rHl*H_oF1$KT1N!9g*JTa|8e#KZR>N;V;h$I;qX5>vEv`yDd z3(oyHJ!@GcKeq-60NNhX^;`k4<9t46>%dqEl0V?eQbBv7NwEca7%s>Tmf_WRrS3yaV{*KTu(J!K( zqsZr|OJ*c>D}b}srORvkG(gxk^Ct2Vd|r?56AwP{517R>eI1L#{QD7 z4qUDFyj49iwT*uK1?u`zQtqF;cXC&1uSo459NRdvIa2N#s!GFO2M$Z%Lm-cXD3E%@ IL_WCx0!{$JQUCw| literal 0 HcmV?d00001 diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 000000000..aa96f3271 --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,26 @@ +import pytest +from unittest.mock import Mock + + +@pytest.fixture(params=["SAUCE", "FILLING"]) +def mock_ingredient(request): + type_param = request.param + mock_ingredient = Mock() + mock_ingredient.get_price.return_value = 12.99 + mock_ingredient.get_name.return_value = f"test{type_param.lower().capitalize()}" + mock_ingredient.get_type.return_value = type_param + return mock_ingredient + + +@pytest.fixture +def mock_bun(): + mock_bun = Mock() + mock_bun.get_price.return_value = 99.5 + mock_bun.get_name.return_value = "testBun" + return mock_bun + + +@pytest.fixture +def burger(): + from burger import Burger + return Burger() \ No newline at end of file diff --git a/tests/test_bun.py b/tests/test_bun.py new file mode 100644 index 000000000..9c8673787 --- /dev/null +++ b/tests/test_bun.py @@ -0,0 +1,18 @@ +import sys +import os +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +from bun import Bun + +class TestBun: + + bun = Bun("testBun", "99.5") + + def test_bun_init(self): + assert self.bun.name == "testBun" + assert self.bun.price == "99.5" + + def test_bun_get_name(self): + assert self.bun.get_name() == "testBun" + + def test_bun_get_price(self): + assert self.bun.get_price() == "99.5" \ No newline at end of file diff --git a/tests/test_burger.py b/tests/test_burger.py new file mode 100644 index 000000000..14e58e0ba --- /dev/null +++ b/tests/test_burger.py @@ -0,0 +1,52 @@ +import sys +import os +from unittest.mock import Mock +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +from burger import Burger + +class TestBurger: + + def test_burger_init(self, burger): + assert burger.bun == None + assert burger.ingredients == [] + + def test_burger_set_buns(self, burger, mock_bun): + burger.set_buns(mock_bun) + assert burger.bun == mock_bun + + def test_burger_add_ingredient(self, burger, mock_ingredient): + burger.add_ingredient(mock_ingredient) + assert burger.ingredients == [mock_ingredient] + + def test_burger_remove_ingredient(self, burger, mock_ingredient): + burger.add_ingredient(mock_ingredient) + burger.remove_ingredient(0) + assert burger.ingredients == [] + + def test_burger_move_ingredient(self, burger, mock_ingredient): + mock_ingredient2 = Mock() + mock_ingredient2.get_price.return_value = 15.0 + mock_ingredient2.get_name.return_value = f"new{mock_ingredient.get_type().lower().capitalize()}" + mock_ingredient2.get_type.return_value = mock_ingredient.get_type() + + burger.add_ingredient(mock_ingredient) + burger.add_ingredient(mock_ingredient2) + burger.move_ingredient(1, 0) + assert burger.ingredients == [mock_ingredient2, mock_ingredient] + + def test_burger_get_price(self, burger, mock_bun, mock_ingredient): + burger.set_buns(mock_bun) + burger.add_ingredient(mock_ingredient) + # Expected price: (99.5 * 2) + 12.99 = 211.99 + assert burger.get_price() == 211.99 + + def test_burger_get_receipt(self, burger, mock_bun, mock_ingredient): + burger.set_buns(mock_bun) + burger.add_ingredient(mock_ingredient) + # Expected receipt: + ingredient_type = mock_ingredient.get_type().lower() + ingredient_name = mock_ingredient.get_name() + bun_name = mock_bun.get_name() + price = burger.get_price() + expected_receipt = f"(==== {bun_name} ====)\n= {ingredient_type} {ingredient_name} =\n(==== testBun ====)\n\nPrice: {price}" + assert burger.get_receipt() == expected_receipt \ No newline at end of file diff --git a/tests/test_database.py b/tests/test_database.py new file mode 100644 index 000000000..bf5d9839c --- /dev/null +++ b/tests/test_database.py @@ -0,0 +1,60 @@ +import sys +import os +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +from database import Database + + +class TestDatabase: + + def test_database_init(self): + db = Database() + + # Test buns initialization + assert len(db.buns) == 3 + assert db.buns[0].name == "black bun" + assert db.buns[0].price == 100 + assert db.buns[1].name == "white bun" + assert db.buns[1].price == 200 + assert db.buns[2].name == "red bun" + assert db.buns[2].price == 300 + + + assert len(db.ingredients) == 6 + + + sauces = [ing for ing in db.ingredients if ing.type == "SAUCE"] + assert len(sauces) == 3 + assert sauces[0].name == "hot sauce" + assert sauces[0].price == 100 + assert sauces[1].name == "sour cream" + assert sauces[1].price == 200 + assert sauces[2].name == "chili sauce" + assert sauces[2].price == 300 + + + fillings = [ing for ing in db.ingredients if ing.type == "FILLING"] + assert len(fillings) == 3 + assert fillings[0].name == "cutlet" + assert fillings[0].price == 100 + assert fillings[1].name == "dinosaur" + assert fillings[1].price == 200 + assert fillings[2].name == "sausage" + assert fillings[2].price == 300 + + def test_database_available_buns(self): + db = Database() + buns = db.available_buns() + assert len(buns) == 3 + assert buns[0].name == "black bun" + assert buns[1].name == "white bun" + assert buns[2].name == "red bun" + + def test_database_available_ingredients(self): + db = Database() + ingredients = db.available_ingredients() + assert len(ingredients) == 6 + + sauce_count = len([ing for ing in ingredients if ing.type == "SAUCE"]) + filling_count = len([ing for ing in ingredients if ing.type == "FILLING"]) + assert sauce_count == 3 + assert filling_count == 3 diff --git a/tests/test_ingredient.py b/tests/test_ingredient.py new file mode 100644 index 000000000..0120280bc --- /dev/null +++ b/tests/test_ingredient.py @@ -0,0 +1,26 @@ +import sys +import os +import pytest +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +from ingredient import Ingredient + +@pytest.mark.parametrize("type", ["SAUCE", "FILLING"]) +class TestIngredient: + + def test_ingredient_init(self, type): + ingredient = Ingredient(type, "testIngredient", 12.99) + assert ingredient.type == type + assert ingredient.name == "testIngredient" + assert ingredient.price == 12.99 + + def test_ingredient_get_name(self, type): + ingredient = Ingredient(type, "testIngredient", 12.99) + assert ingredient.get_name() == "testIngredient" + + def test_ingredient_get_price(self, type): + ingredient = Ingredient(type, "testIngredient", 12.99) + assert ingredient.get_price() == 12.99 + + def test_ingredient_get_type(self, type): + ingredient = Ingredient(type, "testIngredient", 12.99) + assert ingredient.get_type() == type \ No newline at end of file