From 25b97e33bc817a7260b21bc9ade9ccd770396435 Mon Sep 17 00:00:00 2001 From: Nikita Date: Thu, 6 Aug 2026 23:33:09 +0300 Subject: [PATCH] Add unit tests for Burger class with 100% coverage --- .coverage | Bin 0 -> 53248 bytes __pycache__/__init__.cpython-314.pyc | Bin 0 -> 129 bytes __pycache__/burger.cpython-314.pyc | Bin 0 -> 4135 bytes __pycache__/praktikum.cpython-314.pyc | Bin 0 -> 1362 bytes .../test_burger.cpython-314-pytest-9.0.3.pyc | Bin 0 -> 12630 bytes __init__.py => praktikum/__init__.py | 0 .../__pycache__/__init__.cpython-314.pyc | Bin 0 -> 139 bytes praktikum/__pycache__/bun.cpython-314.pyc | Bin 0 -> 1554 bytes praktikum/__pycache__/burger.cpython-314.pyc | Bin 0 -> 4145 bytes .../__pycache__/ingredient.cpython-314.pyc | Bin 0 -> 2003 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 test_burger.py | 89 ++++++++++++++++++ 16 files changed, 89 insertions(+) create mode 100644 .coverage create mode 100644 __pycache__/__init__.cpython-314.pyc create mode 100644 __pycache__/burger.cpython-314.pyc create mode 100644 __pycache__/praktikum.cpython-314.pyc create mode 100644 __pycache__/test_burger.cpython-314-pytest-9.0.3.pyc rename __init__.py => praktikum/__init__.py (100%) create mode 100644 praktikum/__pycache__/__init__.cpython-314.pyc create mode 100644 praktikum/__pycache__/bun.cpython-314.pyc create mode 100644 praktikum/__pycache__/burger.cpython-314.pyc create mode 100644 praktikum/__pycache__/ingredient.cpython-314.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 test_burger.py diff --git a/.coverage b/.coverage new file mode 100644 index 0000000000000000000000000000000000000000..58bc0ee39d2e49e77bac892b3e063c1cd8cb6705 GIT binary patch literal 53248 zcmeI)O>Y}T7zglOZ)(SmqYVm?l}1(Of>NuFiv zX_5m%E|rS-2#Bx1m2XlmTsZcGgep$$f#=!T^-B_0$*FSnU&Z!%cV_mP-@Mteldo>w zbRs3Xe&EVTyk#sIrfGa6gkcy(x-HTz+X}QZmp!3Jb8LUwZqca!^7^9vjZw~jYuMi{ zUbHvMyXAiuek;FM{CdGD)QWXFfeiu>fB*zu8G*sAa-p)iYCiZOlC7SK0@+r9zF++0 z%k8b(+v4`t$2YfyJ|-@g1Z|s}VoL=6f#|D1be*0Oj@NP8GIG3K5$&lgbsVY=uUT}A zRxM6gPxA9#)9FyINbOP){lIZ$a3uECQ7uW3UM*6Gkv>3$C}-E>6ykE4y($9LRe|!_ zD%4S2b~@Ek^`{?8h05}>`A8*ol0ln(7A9S!!7(WQdge$e6QTY>c2dn&96IjmvZ zr#KHIUE9ESuSUM;IbKptFLWZu_k=oB?Ko1MQ!7|wv}_~1@!C*Xcez4$b+YE zr{qkNr0_6mJ@};o#I5N86KX}b@=@Be#4_=vXk&A>h*-*O@<8T z7P@h$H;<2*s~Lt2c%TVCO-PZx)ZWIyQVgQi^IMaBE$K0#q5(p4L6)o=du<*nA=jbp z-&cX$RrU0&o)%tqN20FNDCR5M>(jc9Ap#8izdk|$7q(!#z=aGs)va(_h^oZbj ziEkGsD#1raL*Up#aQ5)~GTIX-W9P#Z_{N2N<%5-JfpZAW2H)o&F6EMtf3^~RmnMC_ zSrZ}ikx|H>siV#NvPZK?UpfH|S(=0O3LrRPM^a+h^5ZD!zx*`mp1k&q;?)I=o@e%y zs+uIH;r)dlh7K*OyljQnvZG>SPlh}Tg&U&f`#mK+y*5ye8zEiO2}Kga$yMpYQ5oS8 zm$7?)BZ(}vqICe zJY!|$*ZX9`rMj}ChdVdQScwOF>O^sRHM%Y%6*;aFoFoY*=~xFc6zxFK$#gAE0wb}# z<5B5iKBY6+9I9(m-LPKNcesh04Zi1h$@BbDZm@0^Dp#(UgE$?*dU9%p^h&^$SzXho zxrv^2?BuAEeNMA9y+j)CTns*D$WQeZct+IC-qLhgs`Ld?smgEgP5YTaKiD7u0SG_< z0uX=z1Rwwb2tWV=5P0FBe{9%~he@#m0SG_<0uX=z1Rwwb2tWV=5P-le z2vkkWxU+q2=epDH`EL5qZ0z&{xgR=gp4v5P$##AOHafKmY;|fB*y_009Whf`DZ$7WL=5CH>>P{wCAAftgHh(Vb_lhJP_LlF~@{~08COU~6Q#wD{L yCqEZT#T&-N$7kkcmc+;F6;$5hu*uC&Da}c>D`EvI2N_rlVtis|WMnL22C@J%&l<`A literal 0 HcmV?d00001 diff --git a/__pycache__/burger.cpython-314.pyc b/__pycache__/burger.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dd4ddf21d40a84a5b1286bad2a3b07abdbcb026e GIT binary patch literal 4135 zcmb_e&2JmW6`$SZl1qw`D9aR8TM<_>D~q8jSF)P8@<&`dO68;#R2r3o*ztlU*De!^ zWM)^5trKkrwcG|Za%trt2MH)(=%zGP>&A)eKVi3YOksfl0g4`cC}5R9m1EzV-6d&C zwd0_3cr)|n&6_vB_c4=bYYh-+|9YsuC3*?@2Tt7PaR${RFes6;B*~p1lbp^)am=6K zCk0(#W8s8nQq;vL36nmO^h8Kf9OLcXx;N?FL*l-NIE{0b=O|p=S7hV1 z@fWtixC8uapy5;CA^UUV6WG26T5kjWobC9dJP7<%ki+#)ja3x91M*DkRr7KjPFvi% z)%=ZYdcC0G~uP}EqD<)12Gz=?E&7Id!c);qJ7(erJwwNo-I-N3d<{Wd>aPg8QDM~h<)fL5R zx4k#)GTLFc*1-%}?~E*X-j~+Dw{OAoKv! zAwT1O!6mtq+-b6pgGk{YqC9Oy;sFxpE${gPolWUhtD>ZHDNV~{(_oW^a{VP5g3bym zN-Cc(=qX(VYddS!)|s6krtJjsb%|^ePK<0Ixp|y*6j#%z&~1*z!S{mF)8oux|+(4Z~h5P(c-jVXmN!)_s`-qIV=wR?!?7)u$v_~w#m@>m?tPriu7adQ)}>%Y>NchBiWD`a z=u+T;l=weEEN1f=^&%GKY+iplzKC%nzA*$gwyd#kE55a;li5AC$9IO48ZhJ-hAwt7 zJP)@kBqi$DK+aL-okJRpT`t_}csQcfp% zmf1XHw!ngvqKTG2uf7X50hIK+Fn>CbJs_n;fjH?q$svT3-15mstpE6=J-1D5j6h5T zm`hd6;Ae^1Q}VXaErOb+R*!D?DQ}E&!HM#0UQ?-V3B^JYuwW$vv7iYc8d^NyI<39g zWnGTTn)nQqy|8m@$ongagJ$AjCGnD(c0m@wVAq<|yWn=b!cwdGZ+*ITskx*w- z3z1hK z_jf(N@alT7qY{pr;dnWm_#&A2^~8oib|)TrNhrJ!tmFEv9u+zYMu3k6O{Y)KPmIF4 zhy7yz1_5#tvJ$$wB_PF`1eAIBGqBD6%xs%%2v}2d{St(K?Wi!!J;A$E=-nA^8eiI` zmgLX)UDgagjn8>gbI)-fuIYw2a7A4iutfkZPqx-GD!RI&>`ug3)`- zc<%Uu@3B1VyfJlsYBBi-Vd>RM>_s#7VmbE1vOHdqkDBt)vV6>l9=|to?~TgD>*mDk z<%u_pmrom~-!yigeGpXKr1Xbwv|Vpo>{{~Nl9r{4JYvctWqH359b26=B8TrwN7kiw zCK6fNd8>E1x7;^k$fHJN|9xrftM<+tm#$x0jFj8^45^Q$6b-^Xrs8e*QAZ@<>l;v% z*+OP6hhz8@zcZK0IVbf%_8}QWvJVMXD0&=- z6^8#de6F);C8g^$du~owHBiyf@FP#FxtyXvO=Q1KEICK*I)`~ikzg8XKLzsjH9&uZ z7e(pcZM^vXO$mPD_>4z3z3}_Q(GZSeIEvwDlCxj=O)oqfkMQl-3_)G_Pp!Bx{ZnzD z<%Ph(uOgYI;3YF3>bN>Y{SAqTj literal 0 HcmV?d00001 diff --git a/__pycache__/praktikum.cpython-314.pyc b/__pycache__/praktikum.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a90ed37ebeb67bc4b7e833caee43518f495aee04 GIT binary patch literal 1362 zcmbVMPiqrF6n~qY-E21fW7Q@ktR^K@2{n~M4e?g?vztOa z#f$bRh!7CLs~^LU5E>dC2#9|UJqXqM0i4qU zpeRSdQ8&WH;O%vQ8m+0phB^a_UI`kZq}(SRI$~T}An2iGJ5-C=c9SYO+s0carbx*d zj!`vilVY{d+`?wfGMmn(m&;Z3EFjY7K^w0Qlf7e`B0u^D= zn;!R!licT{ipaZAp7L4Rk4rx0+V3xaqbQ^x9l)%{N?OG-)tG%aGGXi*R^6!9O}*M~ z+GLvB)@V{}qS&T$8ZcqhYC3n3$;QsEd6t;M=HHam!dBBE;Vqg3o13Q9a?*$>HE%45 zTy;m4Aa@I4p53UV z?f2as19F)=c;hj9xzA$hz6Xl(y!UyOZ1%Jb!)BA~dN?hj`m7+L@T literal 0 HcmV?d00001 diff --git a/__pycache__/test_burger.cpython-314-pytest-9.0.3.pyc b/__pycache__/test_burger.cpython-314-pytest-9.0.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..07588ccfdc61d3515476593f864b1b06d905ac0a GIT binary patch literal 12630 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 GmH!V^L(L5U 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-314.pyc b/praktikum/__pycache__/__init__.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2799643299d7695a1af7df98f813687beffc3bc2 GIT binary patch literal 139 zcmdPq5CH>>P{wCAAftgHh(Vb_lhJP_LlF~@{~08COT*PF#wD{L zCqEZT#T&*H6eVVtWM-G<#>B^G=4F<|$LkeT-r}&y%}*)KNwq6t1!@EtT?}G;VrFDy IEMf+-0Il^O2mk;8 literal 0 HcmV?d00001 diff --git a/praktikum/__pycache__/bun.cpython-314.pyc b/praktikum/__pycache__/bun.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b81cb06bd0bb573be64fc25975c0732c736f04d4 GIT binary patch literal 1554 zcmb7E&u<$=6n?X7J8P3)r44Ca1TK~$ETmKwAR$yCgy0&1E2R>Ij<%Z(EM2eD+3_Jg zSrkz!Ra6`}MB*RtE&K>Xgye4+->SWG>H#T{CER1bH)~^a0d*w5H}89I-oE+fJ-;?T zS0Svw9_uf@7es%uFCeZOG|W#nzT$!@rILoG&P+%HQZo)g7wHpgO6eOIQJ=O z(IoBM5ZZl#+BmNZ>-4&4I?EJ$O&4-e7cEk-NYNrCix;?QL)UA`m=$zToqA%e=cp3=ioexxvqBoiTN5PZ#49T+Y8E>4q>PdXm&|7K zQgh3e$pKw@bng6v@}s5dw-vPj;9u`Bs*46Sc>e1hE(=uVs3O9$k_vT4B@LlGm<>nq zl&I$*Mnv1n)EuMp5Y}@J8%voeUN|L)-MUqinh;{ozxlFsDYX4 z33V1K<)dR>J`1(9tzvl@Teg-FFAHZM?%dxo-uX!l5}jzYrf?LtfTB%CUTcuIATzM>XKG*?CS*Tp`5JnHSXoLD&ON0V5S{9RL6T literal 0 HcmV?d00001 diff --git a/praktikum/__pycache__/burger.cpython-314.pyc b/praktikum/__pycache__/burger.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8a21c3d9dd1947eee29a5deb4a7a6f7c32479264 GIT binary patch literal 4145 zcmb_f&2JmW6`x&l$t6Welx2#l?T9OxmBmn%D_Kok`6I3!rE<~=3XRG^?07+wYnKVN zWM-F*t&?mAwcG|Za%trt2MH)(=%zGP;>L;NKVi3YOksfl0g4`cC}5R9m1EzV-6d&C zwd0_3cr*Lv&6_vB_c61{w$>nl_OA!}n}Uy!f8dAPyw0F{7zT6X3`udv$poi!F&y*9 z`3aBiVPns6?}VTWF%luYB;}2glrYNMt94(>x0@vV5AZX=S>9jdG<}(~JV#3^biw25 zd8%Y{imGSq1vYh7ljf1~@{3#)rlocRH6|~+0`UP9@7ij?aDNLpOT}5vzSLm?J4NP1M@t5PsF9Q)D+; z<|dbU%X7A*S}nO+;Aj|Dnvy@Kp>V&|KR$N)#auC8m~lFJ_;it`-_mn$m1a(#WiA^k zUbIA6&Z#+FmaTT%k3%k_9rS1&%%ru>=)CtmaqUNY=e_sE?kZZxj^G;R9D!6Nm^sMJ zfzfC9{qGWzg@f%PuX4ZUQrrpd6xqu`%Ys2MAwnrIL11Pvl&$AHpghO zx(zsUhHIW5;aAa!4+B!K9|9a@iWb9on3zr?fnt3 z?+F@>z*;LLuJ6N|F6>yjxjR#?Xj+}zN zxlN%|Q=8^Sos-2NhF$!4+6Ho#FI_AuYSzWE2Y8R**p|*_ArRd%Xhj_NKFVfCK{7|y z#85@-HpT9W7&FD#V(`A0{69e~W>GUKC)UZN^oD#E#ZA^jcF03BCP1D_CCCqQoegmrbRK#DalQ0B4^VDL098@1QN z{W93#rXmN4ggTpAn7jlbU*u12+p1)_x(4woa$1plWhWs4(nF>>h-i-C0nS7bD{vml zeUaueik*_Sk1fGwv8u+rEJ^HopwHo=u;baGa9@iBVYha6sr=CqQmMRzg>|1f*CKfie$&4z}6Pnk|zJ0c&cmUqbN09q|lt zkMZs#dUu+e!kf0KrTEhUmo?2#;dS2B+I!3JT(Q{Ul#oEzT$Q&@YNT3yQsU)PcHPvIl4snyFJZawVN=C^Qb-F35tQJ)3Ok3L;vdiJIK)nO|Kz>R6i~7wAOBX78_M3b5 zm-mbr{ReJ6XY?F3o;fz}eHiJZx}nz+z-iaQU=1;+pe`ObS-*sic4Ze8aAcjvb4{L zjjl`>(L?vd!)szY6NxTvzuB|YQ|=u$q!A;!@18jNO?&6{i`OnLM9b~HhS#IVgw9DLo0bz57JOBUy literal 0 HcmV?d00001 diff --git a/praktikum/__pycache__/ingredient.cpython-314.pyc b/praktikum/__pycache__/ingredient.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fe450f18806c3f582d82e834fad03be4fe24d0fb GIT binary patch literal 2003 zcmbVML2MgE6rI^!JL^r-q$DA6T8Sk_v@TUjDM+ZQ5C=GLiC~eO18GN#y(vrAYco4O zq$j5!s!A1bq!KqyxdmuMplZ2sp1oCj?ForPB1?6T{QqsoF3?u#m*&sRo0&iVznTAE zJ2L4oknjFhpH~dV9^hmkR)5f0gh89lv6q?0=9$OegqpF|)iyC&dYR1uWQ|Q!r?=)#(^f zl2tbzFvwP4k8vl7$4YFAuawQqLNeqSpc0)ZTbY#v(Yi#!hj4=Ty$T{HVUXEEgmDOr zWHXNi)B`D)qp+{d?$4HP7Vgh3fSOzU#*x#2KK8DC-&x0nm8ZSy84eyBG6&nTybM%J z#$_%si_3-_hfYp_>c0?qDUTpJ1qyvmW|Kh6LohlZ4F+}P0e z!qAcDr$oL4emt9y8Q3LVR0sbQCM1Upo-F-u@Kk&L9Xx_`& zL+&8$93kqBS}VdaRG2SXe$-!?5@J1+iHgEFh#RmxCPb}K6++IT?c=DHP@Mpk%|TIv z(iB#OuapcwZK)uEGe<|tUNwj!A>f}=ejyL<_Ru|$Pf@&>3!*Woko8&=NlPC(tF zs?~KM)%Gyox_S6rI4aWUA&w|kGO_|Ups}r9{QWv}p%>*l^6cOq%;!CmbKW&(c(KDk Hk&%A@lSSUn literal 0 HcmV?d00001 diff --git a/bun.py b/praktikum/bun.py similarity index 100% rename from bun.py rename to praktikum/bun.py diff --git a/burger.py b/praktikum/burger.py similarity index 100% rename from burger.py rename to praktikum/burger.py diff --git a/database.py b/praktikum/database.py similarity index 100% rename from database.py rename to praktikum/database.py diff --git a/ingredient.py b/praktikum/ingredient.py similarity index 100% rename from ingredient.py rename to praktikum/ingredient.py diff --git a/ingredient_types.py b/praktikum/ingredient_types.py similarity index 100% rename from ingredient_types.py rename to praktikum/ingredient_types.py diff --git a/test_burger.py b/test_burger.py new file mode 100644 index 000000000..914f0ab82 --- /dev/null +++ b/test_burger.py @@ -0,0 +1,89 @@ +import pytest +from unittest.mock import Mock +from praktikum.burger import Burger + + +class TestBurger: + + def test_set_buns(self): + burger = Burger() + mock_bun = Mock() + burger.set_buns(mock_bun) + assert burger.bun == mock_bun + + def test_add_ingredient(self): + burger = Burger() + mock_ingredient = Mock() + burger.add_ingredient(mock_ingredient) + assert mock_ingredient in burger.ingredients + assert len(burger.ingredients) == 1 + + def test_remove_ingredient(self): + burger = Burger() + mock_ingredient_1 = Mock() + mock_ingredient_2 = Mock() + burger.add_ingredient(mock_ingredient_1) + burger.add_ingredient(mock_ingredient_2) + + burger.remove_ingredient(0) + + assert mock_ingredient_1 not in burger.ingredients + assert mock_ingredient_2 in burger.ingredients + assert len(burger.ingredients) == 1 + + def test_move_ingredient(self): + burger = Burger() + mock_ingredient_1 = Mock() + mock_ingredient_2 = Mock() + burger.add_ingredient(mock_ingredient_1) + burger.add_ingredient(mock_ingredient_2) + + burger.move_ingredient(0, 1) + + assert burger.ingredients == [mock_ingredient_2, mock_ingredient_1] + + @pytest.mark.parametrize( + "bun_price, ingredient_1_price, ingredient_2_price, expected_price", + [ + (100.0, 50.0, 30.0, 280.0), + (0.0, 0.0, 0.0, 0.0), + (150.5, 99.5, 0.0, 400.5), + ] + ) + def test_get_price(self, bun_price, ingredient_1_price, ingredient_2_price, expected_price): + burger = Burger() + + mock_bun = Mock() + mock_bun.get_price.return_value = bun_price + burger.set_buns(mock_bun) + + mock_ingredient_1 = Mock() + mock_ingredient_1.get_price.return_value = ingredient_1_price + + mock_ingredient_2 = Mock() + mock_ingredient_2.get_price.return_value = ingredient_2_price + + burger.add_ingredient(mock_ingredient_1) + burger.add_ingredient(mock_ingredient_2) + + assert burger.get_price() == expected_price + + def test_get_receipt(self): + burger = Burger() + + mock_bun = Mock() + mock_bun.get_name.return_value = "black bun" + mock_bun.get_price.return_value = 100.0 + burger.set_buns(mock_bun) + + mock_ingredient = Mock() + mock_ingredient.get_name.return_value = "dinosaur" + mock_ingredient.get_type.return_value = "FILLING" + mock_ingredient.get_price.return_value = 200.0 + burger.add_ingredient(mock_ingredient) + + receipt = burger.get_receipt() + + assert "black bun" in receipt + assert "dinosaur" in receipt + assert "400.0" in receipt \ No newline at end of file