From 75c5b174c3a1077aabd9abfa5585ba59a8e582b2 Mon Sep 17 00:00:00 2001 From: Sasha Kochenkova Date: Tue, 10 Mar 2026 11:23:03 +0500 Subject: [PATCH 1/3] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D1=8E=D0=BD=D0=B8=D1=82=20=D1=82=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .coverage | Bin 0 -> 53248 bytes __init__.py => praktikum/__init__.py | 0 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 | 0 requirements.txt | 2 + tests/test_bun.py | 11 +++ tests/test_burger.py | 82 ++++++++++++++++++ tests/test_database.py | 19 ++++ tests/test_ingredient.py | 38 ++++++++ 13 files changed, 152 insertions(+) create mode 100644 .coverage rename __init__.py => praktikum/__init__.py (100%) 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 (100%) create mode 100644 requirements.txt 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/.coverage b/.coverage new file mode 100644 index 0000000000000000000000000000000000000000..0fa896d10a9262b028935ace5a3d63a729372351 GIT binary patch literal 53248 zcmeI)+i%-c90zbaPV6R4J=i*{v5jIvc?ViF9-6$5;CT*R*RxZB%j?ej= zi({wF%jeEo0cR_&XPW^#Buz@PEIq@RBuPbjPS7)*G@8k$3-m7c%@3O`N{j0sPUx>n zW%YGQe`8{gzEEzJ{}}(Ye7yL|xTVb(7ij|~2tWV=5O`<=y64JTb!tk!@=jpZ+dS~h z2KVCEiBm5vFP&dz=a-&6yUgNsY+s4dw6MUInCD(*9qzFetIe6^G_8giSWb%tt32I1 z^m$X9vuGWiwZx8#QM{NltR_VTyhTZLJj*t{O?HWI&PO{WM+^8y5U-#_xYcsR9&BF{ zKF2)1!aeRZxF6?YpVgcz&As<-NvrPKC12xFnM|)ikMV)h(2A@mXI3bohU+y&?(3fE zG*-Dk&&*y48!qK@BZy1ux%Pp;Wo^reis|@PV7U(C8@v$)yt!=w=LK3i5ng|3D6Na4 zKo{f4G!12gCNfKTVD+|JA8cz;i}5*i5E={8 z-Bv=UA-ak$%FuAvxo5WcVzMqI*{CHkW3@8Q8Mi#$rdWkf~HoNriT?L+0UpYGh6bse8ZZ`o2Y{RdL$#Po!(v?5gRDQOKWVb=Pfk(}~Xw6miC< zV_H6o@^JfE>139MzbVpat46gm_JXQF7015W80?FOwL#0G#sZ&W54K};yCdj zLV;|SI;BrtbW56PqRCb9dB%X=8FOjWR}Jt6OswC-WR_NypH*G;_1co!XA5VxuNr#Z~f{_$b$%k+tgn z{c<->WF z2tWV=5P$##AOHafKmY;|*pUL|oU&I>|19L-q^wL&C4U2OY_WD|@oL2Tk%3t~ul`m)!69gat0SG_<0uX=z1Rwwb2teRo2^>@WQ7_|rcLL~&RXdsQ%A*Em zSK__vfAy%cHfng^^?%{G5{?>{9hLH%KdjiJ2KKK1m73BTJxE;t=Z+|A#S!lq^j-hs z_y6uyb4EH4fB*y_009U<00Izz00bZafd^7Rp}!cI5a0jH`hOBVFhKwU5P$##AOHaf zKmY;|fB*y_@DK_p%0y9o|F7y_OZvb1@A}XB_xg9VfC&N+fB*y_009U<00Izz00bZa zfd@`NRr7MOqJA}2p!Y}fsykiE)7)c)6TjSal(Itedz4SQ*T4MCmbDx$P3GReUXb&} zVnr6;|Eu~Bl7377TmMb}QU8?|FhKwU5P$##AOHafKmY;|fB*y_up Date: Thu, 12 Mar 2026 15:52:45 +0500 Subject: [PATCH 2/3] fix test_get_receipt according to reviewer comment --- .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 147 bytes praktikum/__pycache__/bun.cpython-312.pyc | Bin 0 -> 1028 bytes praktikum/__pycache__/burger.cpython-312.pyc | Bin 0 -> 3196 bytes .../__pycache__/database.cpython-312.pyc | Bin 0 -> 2378 bytes .../__pycache__/ingredient.cpython-312.pyc | Bin 0 -> 1344 bytes .../ingredient_types.cpython-312.pyc | Bin 0 -> 375 bytes pytest.ini | 2 + .../test_bun.cpython-312-pytest-9.0.2.pyc | Bin 0 -> 2495 bytes .../test_burger.cpython-312-pytest-9.0.2.pyc | Bin 0 -> 9738 bytes ...test_database.cpython-312-pytest-9.0.2.pyc | Bin 0 -> 5954 bytes ...st_ingredient.cpython-312-pytest-9.0.2.pyc | Bin 0 -> 4421 bytes tests/test_burger.py | 40 ++++++++++++------ 12 files changed, 28 insertions(+), 14 deletions(-) create mode 100644 praktikum/__pycache__/__init__.cpython-312.pyc create mode 100644 praktikum/__pycache__/bun.cpython-312.pyc create mode 100644 praktikum/__pycache__/burger.cpython-312.pyc create mode 100644 praktikum/__pycache__/database.cpython-312.pyc create mode 100644 praktikum/__pycache__/ingredient.cpython-312.pyc create mode 100644 praktikum/__pycache__/ingredient_types.cpython-312.pyc create mode 100644 pytest.ini create mode 100644 tests/__pycache__/test_bun.cpython-312-pytest-9.0.2.pyc create mode 100644 tests/__pycache__/test_burger.cpython-312-pytest-9.0.2.pyc create mode 100644 tests/__pycache__/test_database.cpython-312-pytest-9.0.2.pyc create mode 100644 tests/__pycache__/test_ingredient.cpython-312-pytest-9.0.2.pyc diff --git a/praktikum/__pycache__/__init__.cpython-312.pyc b/praktikum/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dd69febb531b2a9c8f6c0548510690e74d4065db GIT binary patch literal 147 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 literal 0 HcmV?d00001 diff --git a/pytest.ini b/pytest.ini new file mode 100644 index 000000000..03f586d41 --- /dev/null +++ b/pytest.ini @@ -0,0 +1,2 @@ +[pytest] +pythonpath = . \ No newline at end of file diff --git a/tests/__pycache__/test_bun.cpython-312-pytest-9.0.2.pyc b/tests/__pycache__/test_bun.cpython-312-pytest-9.0.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b610aed98855e2309e9eb4a0061137a02c90c255 GIT binary patch literal 2495 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 tk6!i{ewF95J`*W~Pf9Rc8}{}0ugFdhH^ literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_ingredient.cpython-312-pytest-9.0.2.pyc b/tests/__pycache__/test_ingredient.cpython-312-pytest-9.0.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5ae058c04aca4ccc6a154606b59f3a4fa6532c48 GIT binary patch literal 4421 zcmeHK&2JM|5Z`aF*G?7+p+H0HCPBg_H6JB7MNKJ!ltx8S)k3Qpq?PfmgOhdazFkwC z+EPD|%74J62abtyAh(`+uhff8fS@N;AoawhN}EcRa_Y=`-nID%A1QERW&hsHyqS3) z`)1zkZ(Uu60MFr{uNDSXLHGli;89w{%I82_7Hq*5T_Gc~Rw~LlNfe4oMiqIFmeHU` zawA1OqcfT8MvF$qD8@1|QILe=f~{N>Y;|7Zelzi^nAGkfGoBQwF*ZFx9J}C5`$>uR zjEx`vboAKR==e$Ng}TAv*`b##=zdcXL?u@fgimg6otMq11YOatcausLTWN1oI> z)i^yFdr)SJj%G`?oR^)5t=MW_o{)lB+uB88zGafppOMc2!yRzE4aPbzcs(8dL}Da? z)c!yOL`$?c>7^zd-@=n?)ORI~dSZktA541GXdiH@pvs&=<#Kf|!hVDU2nScYv!3S= zpA9k$b|4&18U&9n)dTm`_@G?%A%d(dp&PAS)^#o7lu52sEN6*B#tI3tNKcjmB^$d`bH{nRhywABTJK%>sNY z{IfyWlDJ|nY+k4=_KaLIZkgMb%)X}C*U$$67tH}68s@;P(liH`bo||D2{;#GQy;uE z!@0#ac^#GexcC|~3=KE|?q`+IEFe3TZt8<8FxTgu2<3GoLiuGP6oe;8?Q)Qa9-9b5 z%@>vk3EoAJ2S0lHJjk-Z1BsBO1=0^*$p(ZTge^EoE6GJMN_hs^ihbJ8g$_BZqt;G($`h=#dywx?;PmUR5x zXbCtMVpC6H;G@Q3o4k(7{ak#F8HNU&0Qa*!oCLFg>{Pm`r^s%Y@pG<##B~I|_%iUH zDDcH64*XE_g$MpR3LvcC*NFQ*IIwHPJu7a|l>G0oZ{POlZ|&P2doh(fD(LxbpAK&O zG~V`R(@Zbv_`9KV0p~(&>S+vm)L3kj*HIa6dlX+|hMW$up{Hj}&VgA#hTTBi)YB~J z$CELtTda7qENWO*v1C_V2k5wEeO1Z2SYZOE@iLJr#VnbkF(?i}?vuidL+}%Y;MW0p z3n7KD4`5DUBd`QYuohx~iry~(7lk`&?8npJonBIVn`-YZec(=4-<6LSHZ|fyx4H(d zoLi6^@dL}M95q%{P1FABmejXbOrVyLTGjl>Li0WAF&}2;IFDhzGF()$i|Rpv z%x)LD&Ek8N;?*jYxhdj&O$xq4qoIgKS~7k}hrkovTqfBmzc5uPrrJd(FW9#~tcz93 zUdR5kO&$hU?Tug6-{WueeR3E&@YB!3n{QbbMe#Pig&(?p7k1wkPW`LADGvWF05I$S E0KF1-Gynhq literal 0 HcmV?d00001 diff --git a/tests/test_burger.py b/tests/test_burger.py index 8a5b3bf53..c9c3fb2d9 100644 --- a/tests/test_burger.py +++ b/tests/test_burger.py @@ -8,67 +8,73 @@ class TestBurger: def test_set_buns(self): burger = Burger() bun = Mock() + burger.set_buns(bun) + assert burger.bun == bun def test_add_ingredient(self): burger = Burger() ingredient = Mock() + burger.add_ingredient(ingredient) + assert ingredient in burger.ingredients assert len(burger.ingredients) == 1 def test_remove_ingredient(self): - burger = Burger() ingredient = Mock() + burger.add_ingredient(ingredient) burger.remove_ingredient(0) + assert len(burger.ingredients) == 0 def test_move_ingredient(self): - burger = Burger() + ing1 = Mock() ing2 = Mock() + burger.add_ingredient(ing1) burger.add_ingredient(ing2) + burger.move_ingredient(0, 1) - assert burger.ingredients[1] == ing1 assert burger.ingredients[0] == ing2 + assert burger.ingredients[1] == ing1 @pytest.mark.parametrize( "bun_price, ing_prices, expected_total", [ - (100, [50, 70], 320), # 100*2 + 50+70 = 320 - (200, [], 400), # булка без ингредиентов - (50, [25, 25, 50], 200) # 50*2 + 25+25+50 = 200 + (100, [50, 70], 320), + (200, [], 400), + (50, [25, 25, 50], 200) ] ) def test_get_price(self, bun_price, ing_prices, expected_total): burger = Burger() + bun = Mock() bun.get_price.return_value = bun_price burger.set_buns(bun) for price in ing_prices: - ing = Mock() - ing.get_price.return_value = price - burger.add_ingredient(ing) + ingredient = Mock() + ingredient.get_price.return_value = price + burger.add_ingredient(ingredient) assert burger.get_price() == expected_total def test_get_receipt(self): burger = Burger() - bun = Mock() bun.get_name.return_value = "black bun" bun.get_price.return_value = 100 burger.set_buns(bun) - ingredient = Mock() ingredient.get_type.return_value = "SAUCE" ingredient.get_name.return_value = "hot sauce" @@ -77,6 +83,12 @@ def test_get_receipt(self): receipt = burger.get_receipt() - assert "black bun" in receipt - assert "hot sauce" in receipt - assert "Price: 250" in receipt # 100*2 + 50 = 250 + expected_receipt = ( + "(==== black bun ====)\n" + "= sauce hot sauce =\n" + "(==== black bun ====)\n" + "\n" + "Price: 250" + ) + + assert receipt == expected_receipt \ No newline at end of file From a403cd01aa66a5348eaf0e66cd2722d65d38bc52 Mon Sep 17 00:00:00 2001 From: Sasha Kochenkova Date: Thu, 12 Mar 2026 16:00:18 +0500 Subject: [PATCH 3/3] fix test_get_receipt according to reviewer comment --- praktikum/__pycache__/__init__.cpython-312.pyc | Bin 147 -> 0 bytes praktikum/__pycache__/bun.cpython-312.pyc | Bin 1028 -> 0 bytes praktikum/__pycache__/burger.cpython-312.pyc | Bin 3196 -> 0 bytes praktikum/__pycache__/database.cpython-312.pyc | Bin 2378 -> 0 bytes praktikum/__pycache__/ingredient.cpython-312.pyc | Bin 1344 -> 0 bytes .../__pycache__/ingredient_types.cpython-312.pyc | Bin 375 -> 0 bytes .../test_bun.cpython-312-pytest-9.0.2.pyc | Bin 2495 -> 0 bytes .../test_burger.cpython-312-pytest-9.0.2.pyc | Bin 9738 -> 0 bytes .../test_database.cpython-312-pytest-9.0.2.pyc | Bin 5954 -> 0 bytes .../test_ingredient.cpython-312-pytest-9.0.2.pyc | Bin 4421 -> 0 bytes 10 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 praktikum/__pycache__/__init__.cpython-312.pyc delete mode 100644 praktikum/__pycache__/bun.cpython-312.pyc delete mode 100644 praktikum/__pycache__/burger.cpython-312.pyc delete mode 100644 praktikum/__pycache__/database.cpython-312.pyc delete mode 100644 praktikum/__pycache__/ingredient.cpython-312.pyc delete mode 100644 praktikum/__pycache__/ingredient_types.cpython-312.pyc delete mode 100644 tests/__pycache__/test_bun.cpython-312-pytest-9.0.2.pyc delete mode 100644 tests/__pycache__/test_burger.cpython-312-pytest-9.0.2.pyc delete mode 100644 tests/__pycache__/test_database.cpython-312-pytest-9.0.2.pyc delete mode 100644 tests/__pycache__/test_ingredient.cpython-312-pytest-9.0.2.pyc diff --git a/praktikum/__pycache__/__init__.cpython-312.pyc b/praktikum/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index dd69febb531b2a9c8f6c0548510690e74d4065db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147 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 diff --git a/tests/__pycache__/test_bun.cpython-312-pytest-9.0.2.pyc b/tests/__pycache__/test_bun.cpython-312-pytest-9.0.2.pyc deleted file mode 100644 index b610aed98855e2309e9eb4a0061137a02c90c255..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2495 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 tk6!i{ewF95J`*W~Pf9Rc8}{}0ugFdhH^ diff --git a/tests/__pycache__/test_ingredient.cpython-312-pytest-9.0.2.pyc b/tests/__pycache__/test_ingredient.cpython-312-pytest-9.0.2.pyc deleted file mode 100644 index 5ae058c04aca4ccc6a154606b59f3a4fa6532c48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4421 zcmeHK&2JM|5Z`aF*G?7+p+H0HCPBg_H6JB7MNKJ!ltx8S)k3Qpq?PfmgOhdazFkwC z+EPD|%74J62abtyAh(`+uhff8fS@N;AoawhN}EcRa_Y=`-nID%A1QERW&hsHyqS3) z`)1zkZ(Uu60MFr{uNDSXLHGli;89w{%I82_7Hq*5T_Gc~Rw~LlNfe4oMiqIFmeHU` zawA1OqcfT8MvF$qD8@1|QILe=f~{N>Y;|7Zelzi^nAGkfGoBQwF*ZFx9J}C5`$>uR zjEx`vboAKR==e$Ng}TAv*`b##=zdcXL?u@fgimg6otMq11YOatcausLTWN1oI> z)i^yFdr)SJj%G`?oR^)5t=MW_o{)lB+uB88zGafppOMc2!yRzE4aPbzcs(8dL}Da? z)c!yOL`$?c>7^zd-@=n?)ORI~dSZktA541GXdiH@pvs&=<#Kf|!hVDU2nScYv!3S= zpA9k$b|4&18U&9n)dTm`_@G?%A%d(dp&PAS)^#o7lu52sEN6*B#tI3tNKcjmB^$d`bH{nRhywABTJK%>sNY z{IfyWlDJ|nY+k4=_KaLIZkgMb%)X}C*U$$67tH}68s@;P(liH`bo||D2{;#GQy;uE z!@0#ac^#GexcC|~3=KE|?q`+IEFe3TZt8<8FxTgu2<3GoLiuGP6oe;8?Q)Qa9-9b5 z%@>vk3EoAJ2S0lHJjk-Z1BsBO1=0^*$p(ZTge^EoE6GJMN_hs^ihbJ8g$_BZqt;G($`h=#dywx?;PmUR5x zXbCtMVpC6H;G@Q3o4k(7{ak#F8HNU&0Qa*!oCLFg>{Pm`r^s%Y@pG<##B~I|_%iUH zDDcH64*XE_g$MpR3LvcC*NFQ*IIwHPJu7a|l>G0oZ{POlZ|&P2doh(fD(LxbpAK&O zG~V`R(@Zbv_`9KV0p~(&>S+vm)L3kj*HIa6dlX+|hMW$up{Hj}&VgA#hTTBi)YB~J z$CELtTda7qENWO*v1C_V2k5wEeO1Z2SYZOE@iLJr#VnbkF(?i}?vuidL+}%Y;MW0p z3n7KD4`5DUBd`QYuohx~iry~(7lk`&?8npJonBIVn`-YZec(=4-<6LSHZ|fyx4H(d zoLi6^@dL}M95q%{P1FABmejXbOrVyLTGjl>Li0WAF&}2;IFDhzGF()$i|Rpv z%x)LD&Ek8N;?*jYxhdj&O$xq4qoIgKS~7k}hrkovTqfBmzc5uPrrJd(FW9#~tcz93 zUdR5kO&$hU?Tug6-{WueeR3E&@YB!3n{QbbMe#Pig&(?p7k1wkPW`LADGvWF05I$S E0KF1-Gynhq