From ce94e2d517e5364f6ce4b14e288045bdcc3fc286 Mon Sep 17 00:00:00 2001 From: Anastasiya Ratushnyak Date: Thu, 6 Aug 2026 19:01:10 +0300 Subject: [PATCH 1/2] my proect --- .coverage | Bin 0 -> 53248 bytes __init__.py => praktikum/__init__.py | 0 .../__pycache__/__init__.cpython-314.pyc | Bin 0 -> 150 bytes praktikum/__pycache__/bun.cpython-314.pyc | Bin 0 -> 1565 bytes praktikum/__pycache__/burger.cpython-314.pyc | Bin 0 -> 4156 bytes .../__pycache__/database.cpython-314.pyc | Bin 0 -> 2803 bytes .../__pycache__/ingredient.cpython-314.pyc | Bin 0 -> 2014 bytes .../ingredient_types.cpython-314.pyc | Bin 0 -> 378 bytes .../__pycache__/praktikum.cpython-314.pyc | Bin 0 -> 1383 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 praktikum.py => praktikum/praktikum.py | 1 - .../test_bun.cpython-314-pytest-9.0.3.pyc | Bin 0 -> 2799 bytes .../test_burger.cpython-314-pytest-9.0.3.pyc | Bin 0 -> 10862 bytes ...test_database.cpython-314-pytest-9.0.3.pyc | Bin 0 -> 6325 bytes ...st_ingredient.cpython-314-pytest-9.0.3.pyc | Bin 0 -> 3932 bytes ...redient_types.cpython-314-pytest-9.0.3.pyc | Bin 0 -> 2437 bytes ...est_praktikum.cpython-314-pytest-9.0.3.pyc | Bin 0 -> 758 bytes tests/test_bun.py | 12 +++ tests/test_burger.py | 78 ++++++++++++++++++ tests/test_database.py | 18 ++++ tests/test_ingredient.py | 16 ++++ tests/test_ingredient_types.py | 9 ++ tests/test_praktikum.py | 12 +++ 27 files changed, 145 insertions(+), 1 deletion(-) create mode 100644 .coverage 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__/database.cpython-314.pyc create mode 100644 praktikum/__pycache__/ingredient.cpython-314.pyc create mode 100644 praktikum/__pycache__/ingredient_types.cpython-314.pyc create mode 100644 praktikum/__pycache__/praktikum.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%) rename praktikum.py => praktikum/praktikum.py (99%) create mode 100644 tests/__pycache__/test_bun.cpython-314-pytest-9.0.3.pyc create mode 100644 tests/__pycache__/test_burger.cpython-314-pytest-9.0.3.pyc create mode 100644 tests/__pycache__/test_database.cpython-314-pytest-9.0.3.pyc create mode 100644 tests/__pycache__/test_ingredient.cpython-314-pytest-9.0.3.pyc create mode 100644 tests/__pycache__/test_ingredient_types.cpython-314-pytest-9.0.3.pyc create mode 100644 tests/__pycache__/test_praktikum.cpython-314-pytest-9.0.3.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 create mode 100644 tests/test_ingredient_types.py create mode 100644 tests/test_praktikum.py diff --git a/.coverage b/.coverage new file mode 100644 index 0000000000000000000000000000000000000000..7512f0b56ad309f4f67a3cf31b5c243fe51b008a GIT binary patch literal 53248 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 Qib0G|%#4hTMa)1J00+M!v;Y7A 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..3b19c817e5ce844fb6f5337fb569351da0ed3fa0 GIT binary patch literal 1565 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 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..29e2c6097c9c7408a93435ae4c7e4b8d4e6f5944 GIT binary patch literal 2014 zcmbVMO>7%Q6rR~#JL^r-q$DA6S_u;)z)+=>QVCTRLV^pI2o}{j5IS1yOCvJ%>)jjsTXFKci(<(e^-pqV6^X9#8=Dk;s zO*;&v^R4=^-iK3Wmlv%~B4W2(ev96{<`* z?j-mzl{)W5m!)41{7AL`fa@Loy}qY!>s@^(xmnVC`mX*t>B96jjCb|jEBB)KiO2}6y2qN z(Ld=O*b1J3}if;kTRy6paZ`DWq%{1T{z<*yw%3+Q7{JoKIQO0e>zCqB)=V?*X( zTbh@?YRjm?B_?#mkdx5KDNw`5A}{4JL}x&u&+$AcVwdNZ4;ZLh=cvnkf(<0d81Xr% z1y%O`aACYFGx-e6!3PX?n@hAG6L&d=zh$smnZpT_i`Og}&4YI5|#=jp0)cj(?mHNDgI` zbZ&ICy_7lf|0$8rfgevNWDa)85~{<03KNne22Ym$HFzpRe-9o(I`RTsMweI2EcqlZ ztyLy5?T|Z2J4c8{v)&GI3>D_{wigapW`x)bWURs<@}nj!PY6+O)`XA?X!|6p6;v;Q zN*AEML1_wV!c$5HpR|=9!^MLO@0XLl8p=Ll9#LV-QmbQxLNu=T>;3p*}sRk+xwaIp!<+J9lgg*_K`C;*vzFKh-Wy|4wO z;KE*@^u7z5^tgf@L!Dg}9yLq`>bbD*V)MmDE;mmfA5TAbupm&|29W7Mde?;wT(?-k z>Tj__)%a;L-(ruCPsvY?kG~}f)D-0E;_2!a5+4#7;2IB6D~>J<)w`16Gsu^>tevf5 zLW@(2ios-zOJ+e%elC=XH;gGLO3W_F%r4E1$;?YHN=?a3%`1s7sVqn>)+?yI#bJ}1 wpHiBWYF7jbOi-{DO8|)v%#4hTADLJfSw3(vNGe=l5WOL#e2GE4hyy4I0MEdUxc~qF literal 0 HcmV?d00001 diff --git a/praktikum/__pycache__/praktikum.cpython-314.pyc b/praktikum/__pycache__/praktikum.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5b661d4c19bf4bcbe9e4ad62b8567c28c4c3c248 GIT binary patch literal 1383 zcmbVMPiqrF6n~qY-E21fW7Q@ktR|&Z2{n~M4kA(^hMJ(XHDKr=&9Z5hx;9C}?50pp z@uEEnA_PS6+K=H!2n~%61PXfbR;?evneA?-2p;Od%=^9Hd;8wZn>RZ@F|Gm~4-T9c z#|YpXQ~VL|!0B@eI#7Y4P=LJP2nmJ*g+N|(L>G$%l$RXI#i$_XgHF)JQbEawoKOOa zaughOBU}vLT?eSqoEmJXGm!C8P!DC+ovF|d#-#*;o>;a+rI>9usgSd6yk%mFl$_xh zRl_zZRtwE7Y}PEZ>1=wjTtUwQBAus40^56;u4lu~*n%>%yJN%&C0LVumdlYnKnXSpl|DsVf_^^CWh1W^Al=Y3QXE5Zf+(FOg*3;Ij{^dI+k&1EG}5i(x) zxM!T?HXl_)UWM|M&(eBa@iCWvefbwfVHQ#W%yO)xR4h}8*~O6wW7n|iMzwD0)ppY+ z(_FVkonjNkHk~tv38Plixrt0Rc6QD4#1uCFrlc0OnhptX(ID8|G_97CLPV)~ZAs*+ z+o}Y)TL|;$w$1u7Ne9V1yjOl^o7i^Oa?WbicN(717t1YdY&+I=yTQ>yYmcCYVKs4t z22tp=KhvcH-(xc$;+_0&86w)d_0IB%4AI0OlI}&)hmkv-9Mx~62XoopT=sA-*Lh5J zDg0*j)#}?^ck2D4KGKenIzX`=igo8d86Ow=DD~yP7&r0&#d|2;UF;ftl=K*_hqUg~ zK1$F{O6va2fvWXX?NGgbgc7Ip5I_`NXJ^y(mDCuKoxK*T8hfE+d{m1CT2IU>NG_e{ z*l*$N_AhhVzYMoG$W?COw}IJHc8kffH;sm=>j!|NjGbm#l>3dHTDxv8;UrbrqqWm? sIS~ax7(#Ri*M=}Vgj++H|0Qce@?;6n*#67D82gHp*ULXeKyf$RABm=2uNlDWns(g`9i^@qFLmEm@N7n9M(-lR*{_GWf0 z2qbMpkx11;4@ew1Rorqb*CO~EHci!{5fx`{6%i`xiT7rA9j62;4qOl``^|fAe(%kj zw=?hU%h`?$f#=v8~imwjJ+XH+HkQj4->7zWUKIMtME!FgpN;#(T2jrxQ{+Z z2f{~;oqMfx5i;ycT6)Xz+wKn(IvA20&V81FRBvxKTY9r^S=VJ zNq)+91>F<3CwH?`TiTDE-8a{-uLs8L*7}VrFa(3MA>HYmePBetU6{Vol$y+z-(>Fs zB9iW-uW;htz8$dOx`}UPz+ev|BmY)yTde$F+c3YfhW=-38^a^cQb_P#u{09wJPg|; z!;Zo_fXp*2`cSgw{&~srm{b1inw7?TC?O0hH^WlRjv#psNe_~vNT6#Gb__`$kOO6a z4T45=AGp8LrFj0(yB$V^UcLl!$mQO+z7ZHBTN^j7!f>uw3j0 zAazo@>@c6ZPR*{>DP==o&amH$9!h-} zM~f27@Uvl7rk3FsiX_PR_)dQR0`m5&t|rbZj}0|3`iKCLVM|;tBaFDe$hRr_XxNeR zVJCntk!SWt%;C03H&r4P>Eu}u$2t6YJ literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_burger.cpython-314-pytest-9.0.3.pyc b/tests/__pycache__/test_burger.cpython-314-pytest-9.0.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d448314a6f1e355830eb83cabae72f1c379c7647 GIT binary patch literal 10862 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 MTAMPqLja`dpOEeOumAu6 literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_ingredient_types.cpython-314-pytest-9.0.3.pyc b/tests/__pycache__/test_ingredient_types.cpython-314-pytest-9.0.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7e43108ce2efb9639a2aed454cc9089389183696 GIT binary patch literal 2437 zcmeHJ&2Jk;6rb5$+iT~;O-l%f58FZnERfU2Hg0JRu4+RpN)#=r5t8X>V{g)>Ywu=e zEN~H0B#`(&5EuS~{smk~+NhC6MO?UWtMH+S6L0pz-9(WJ;=qNG{pP(lzxOe3X8iod z{9FdX_~1MK+4mTso)n^?h0J6Pm_2k88Muu&_Ge{H9Vt1qrtw5BSV{6EtSIf&n$Gnc zT0{k8s7uJuDoWsorw#lHDkgrD;(8H_Gxl(YT7BCZa>B=+#g0XXZ2U155Zgl~+-a0)|AiCw^MB9&L&(!mV>>+6u7jg^hW1pf z5@A==H)HkkG$UaoJK739rcHDgqD*6+&qlf@a{+Y{k>_Z>g^ko@?BUCpuEx&ynI~2e z2j{E*%k!Q2|9s^g?EFXPYoy@W&x*uHS8rTv3Dp~)r}7<3ZdH=%oq3Zni}L)duY2QK zkx6B3U8LS?U%%d7f4_+TROle7n(fy5CfWRCqec8+ znXmHo08%Y7aPaOwa1aJR?qVj$eDTz1BGd539Ddt~NyP%`nT|uK<2)pHuoW2hwJC3_$I%H@LERiP6+_t0#F@M!BknIjzl)6-$Bik+= zn4DN&c#b(VIjo4KlUYUeOA3uy&bFA52?V9S5Em+Op&ST-|F`18MJ9g~mh*CmE7#uc z-he}6KJ7Mb&v6IgL@sn?8JJJW$qrKT#vEsIOxkJXyA!nj|N{=W##Ykqyeh0FL ze$D2NvekoZbzg7XUGm96wsE9~pZj`aKUtUedE6XEcE;& literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_praktikum.cpython-314-pytest-9.0.3.pyc b/tests/__pycache__/test_praktikum.cpython-314-pytest-9.0.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b42f246496c17d1bd4b7d2af4f681f306aa11402 GIT binary patch literal 758 zcmY*X&5P4O6n~R6X_9R#>X+10w&{J`U*`Q?ss4OfDh#uC1H=%;yMc+)5U44^z-|x-)J+jqmdVn-~Cm#Pn87reAqf{2R zP?^Jh2+05h(bDLfh2cZLCMMZlVw_y%$I(<9&DW9rFbN@F0A9fJ=4bG~!P%cRo1Eio82bxBI<=Po literal 0 HcmV?d00001 diff --git a/tests/test_bun.py b/tests/test_bun.py new file mode 100644 index 000000000..2b94d33d7 --- /dev/null +++ b/tests/test_bun.py @@ -0,0 +1,12 @@ +import pytest +from praktikum.bun import Bun + +class TestBun: + + def test_bun_get_name(self): + bun = Bun("Краторная булка", 100) + assert bun.get_name() == "Краторная булка" + + def test_bun_get_price(self): + bun = Bun("Краторная булка", 100) + assert bun.get_price() == 100 diff --git a/tests/test_burger.py b/tests/test_burger.py new file mode 100644 index 000000000..81832d102 --- /dev/null +++ b/tests/test_burger.py @@ -0,0 +1,78 @@ +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 = Mock() + burger.add_ingredient(mock_ingredient) + burger.remove_ingredient(0) + assert len(burger.ingredients) == 0 + + def test_move_ingredient(self): + burger = Burger() + mock_ing_1 = Mock() + mock_ing_2 = Mock() + burger.add_ingredient(mock_ing_1) + burger.add_ingredient(mock_ing_2) + + # Перемещаем первый элемент на место второго + burger.move_ingredient(0, 1) + assert burger.ingredients == [mock_ing_2, mock_ing_1] + + @pytest.mark.parametrize( + "bun_price, ingredient_price, expected_total", + [ + (100.0, 50.0, 250.0), # (100 * 2) + 50 = 250 + (0.0, 75.0, 75.0), # (0 * 2) + 75 = 75 + (250.0, 0.0, 500.0), # (250 * 2) + 0 = 500 + ] + ) + def test_get_price(self, bun_price, ingredient_price, expected_total): + burger = Burger() + + mock_bun = Mock() + mock_bun.get_price.return_value = bun_price + burger.set_buns(mock_bun) + + mock_ingredient = Mock() + mock_ingredient.get_price.return_value = ingredient_price + burger.add_ingredient(mock_ingredient) + + assert burger.get_price() == expected_total + + 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_type.return_value = "SAUCE" + mock_ingredient.get_name.return_value = "hot sauce" + mock_ingredient.get_price.return_value = 50.0 + burger.add_ingredient(mock_ingredient) + + receipt = burger.get_receipt() + + # Строгая сверка вёрстки чека по вашей заготовке + assert "(==== black bun ====)" in receipt + assert "= sauce hot sauce =" in receipt + assert "Price: 250.0" in receipt diff --git a/tests/test_database.py b/tests/test_database.py new file mode 100644 index 000000000..7be0b204d --- /dev/null +++ b/tests/test_database.py @@ -0,0 +1,18 @@ +import pytest +from praktikum.database import Database + +class TestDatabase: + + def test_database_available_buns(self): + db = Database() + buns = db.available_buns() + assert isinstance(buns, list) + assert len(buns) > 0 + assert buns[0].get_name() is not None + + def test_database_available_ingredients(self): + db = Database() + ingredients = db.available_ingredients() + assert isinstance(ingredients, list) + assert len(ingredients) > 0 + assert ingredients[0].get_name() is not None diff --git a/tests/test_ingredient.py b/tests/test_ingredient.py new file mode 100644 index 000000000..bf3d1420b --- /dev/null +++ b/tests/test_ingredient.py @@ -0,0 +1,16 @@ +import pytest +from praktikum.ingredient import Ingredient + +class TestIngredient: + + def test_ingredient_get_name(self): + ingredient = Ingredient("SAUCE", "Соус чили", 50) + assert ingredient.get_name() == "Соус чили" + + def test_ingredient_get_price(self): + ingredient = Ingredient("SAUCE", "Соус чили", 50) + assert ingredient.get_price() == 50 + + def test_ingredient_get_type(self): + ingredient = Ingredient("SAUCE", "Соус чили", 50) + assert ingredient.get_type() == "SAUCE" diff --git a/tests/test_ingredient_types.py b/tests/test_ingredient_types.py new file mode 100644 index 000000000..11204fa00 --- /dev/null +++ b/tests/test_ingredient_types.py @@ -0,0 +1,9 @@ +import pytest +from praktikum import ingredient_types + +class TestIngredientTypes: + + def test_ingredient_types_constants(self): + # Проверяем точное наличие и строковые значения констант из вашей заготовки + assert ingredient_types.INGREDIENT_TYPE_SAUCE == 'SAUCE' + assert ingredient_types.INGREDIENT_TYPE_FILLING == 'FILLING' diff --git a/tests/test_praktikum.py b/tests/test_praktikum.py new file mode 100644 index 000000000..e58ca73cd --- /dev/null +++ b/tests/test_praktikum.py @@ -0,0 +1,12 @@ +import pytest +from unittest.mock import patch + +from praktikum.praktikum import main + +def test_practikum_main_execution(): + + with patch("builtins.print") as mock_print: + + main() + + mock_print.assert_called_once() From a4f98571783df0bcb50470c416cec21a6368b718 Mon Sep 17 00:00:00 2001 From: Anastasiya Ratushnyak Date: Thu, 6 Aug 2026 19:09:22 +0300 Subject: [PATCH 2/2] my proect --- ...redient_types.cpython-314-pytest-9.0.3.pyc | Bin 2437 -> 2437 bytes tests/test_ingredient_types.py | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/__pycache__/test_ingredient_types.cpython-314-pytest-9.0.3.pyc b/tests/__pycache__/test_ingredient_types.cpython-314-pytest-9.0.3.pyc index 7e43108ce2efb9639a2aed454cc9089389183696..a1b90c0c22b051c2482f31db6c66e29e2a0653a2 100644 GIT binary patch delta 22 bcmZn_ZWZR$=HumJ0D|s~C0UXic`G;pGe`vh delta 22 ccmZn_ZWZR$=HumJ00QqtC0R>0@>XyH05eAgJOBUy diff --git a/tests/test_ingredient_types.py b/tests/test_ingredient_types.py index 11204fa00..82ddc0049 100644 --- a/tests/test_ingredient_types.py +++ b/tests/test_ingredient_types.py @@ -4,6 +4,6 @@ class TestIngredientTypes: def test_ingredient_types_constants(self): - # Проверяем точное наличие и строковые значения констант из вашей заготовки + assert ingredient_types.INGREDIENT_TYPE_SAUCE == 'SAUCE' assert ingredient_types.INGREDIENT_TYPE_FILLING == 'FILLING'