From fa236dd4239f8a4678f1949167ff020371bf8127 Mon Sep 17 00:00:00 2001 From: Maria Date: Sun, 23 Aug 2026 22:31:09 +0100 Subject: [PATCH] Add unit tests for Burger class with 100% coverage --- .coverage | Bin 0 -> 53248 bytes __pycache__/burger.cpython-314.pyc | Bin 0 -> 4148 bytes __pycache__/praktikum.cpython-314.pyc | Bin 0 -> 1375 bytes __init__.py => praktikum/__init__.py | 0 .../__pycache__/__init__.cpython-314.pyc | Bin 0 -> 152 bytes praktikum/__pycache__/bun.cpython-314.pyc | Bin 0 -> 1567 bytes praktikum/__pycache__/burger.cpython-314.pyc | Bin 0 -> 4158 bytes .../__pycache__/ingredient.cpython-314.pyc | Bin 0 -> 2016 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/main.py | 0 tests/__init__.py | 0 tests/__pycache__/__init__.cpython-314.pyc | Bin 0 -> 148 bytes .../test_burger.cpython-314-pytest-9.1.1.pyc | Bin 0 -> 11130 bytes tests/test_burger.py | 97 ++++++++++++++++++ 18 files changed, 97 insertions(+) create mode 100644 .coverage create mode 100644 __pycache__/burger.cpython-314.pyc create mode 100644 __pycache__/praktikum.cpython-314.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%) rename praktikum.py => praktikum/main.py (100%) create mode 100644 tests/__init__.py create mode 100644 tests/__pycache__/__init__.cpython-314.pyc create mode 100644 tests/__pycache__/test_burger.cpython-314-pytest-9.1.1.pyc create mode 100644 tests/test_burger.py diff --git a/.coverage b/.coverage new file mode 100644 index 0000000000000000000000000000000000000000..fd701d33e266308ea17da921a56a84ec2e26b811 GIT binary patch literal 53248 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 literal 0 HcmV?d00001 diff --git a/__pycache__/praktikum.cpython-314.pyc b/__pycache__/praktikum.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c6dfe7f674ec47ea83cb61d8ede1aea64112aca5 GIT binary patch literal 1375 zcmbVMPiqrF6rat`ZZ@0#v1$_%R+G}Igf zZGMFSd}E3~0)242K|vFgK|#oaoPdP{!-0GtCt}gVVjkusEO{8_Vw0{llF1QBf=lXY_|>^cT}O z>vxZL#!+tbQCZ|wD2@3nt;Yo)bLrQYe^C%7K`MY)j>VLUWGWH6I5J}F7}mB?**5h` z!*)`qdx^gHA2YzL-3{TJg!?!tH*##=X9 zMh7PQjMj!)>tP2b=q4p~?`l`o+N!p%UOs?{V|oZc6kTU$)AhyF5Rvh&!>YwzCK=`x zpmjv7a^&1;j{Oc!Zv8x`{Y&tAf?VVVehY{_VXv4hyKU4=U4IWyl(FM1i*mbGuQs;L zd6c9od#rAnE{CEZ2t5$}0WS5xWDi{Hf$1Yz6OxDX01oXv?TE3@P_I|p@<2{{|u76W$J7d6Iz^F zR2<`*Sdrr=m|c>YU78ycAD@|*SrQ+wS5SG2!zMRB br8Fniu80+A3do*f5aSawBO_xGGmr%Ugy19P 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..6c89750f9b0cfac10b7ecf58365c1daf0a6509b4 GIT binary patch literal 1567 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 literal 0 HcmV?d00001 diff --git a/tests/test_burger.py b/tests/test_burger.py new file mode 100644 index 000000000..19083aa8b --- /dev/null +++ b/tests/test_burger.py @@ -0,0 +1,97 @@ +import pytest +from unittest.mock import Mock +from praktikum.burger import Burger + + +class TestBurger: + + def test_set_buns_success(self): + burger = Burger() + mock_bun = Mock() + burger.set_buns(mock_bun) + + assert burger.bun == mock_bun + + def test_add_ingredient_success(self): + burger = Burger() + mock_ingredient = Mock() + burger.add_ingredient(mock_ingredient) + + assert len(burger.ingredients) == 1 + assert burger.ingredients[0] == mock_ingredient + + def test_remove_ingredient_success(self): + burger = Burger() + mock_ing_1 = Mock() + mock_ing_2 = Mock() + burger.add_ingredient(mock_ing_1) + burger.add_ingredient(mock_ing_2) + + burger.remove_ingredient(0) + + assert len(burger.ingredients) == 1 + assert burger.ingredients[0] == mock_ing_2 + + def test_move_ingredient_success(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, ing_prices, expected_price", + [ + (100.0, [100.0, 200.0], 500.0), + (200.0, [], 400.0), + (150.5, [50.5], 351.5), + ], + ) + def test_get_price_success(self, bun_price, ing_prices, expected_price): + burger = Burger() + + mock_bun = Mock() + mock_bun.get_price.return_value = bun_price + burger.set_buns(mock_bun) + + for price in ing_prices: + mock_ing = Mock() + mock_ing.get_price.return_value = price + burger.add_ingredient(mock_ing) + + assert burger.get_price() == expected_price + + def test_get_receipt_success(self): + burger = Burger() + + mock_bun = Mock() + mock_bun.get_name.return_value = "black bun" + mock_bun.get_price.return_value = 100.0 + + mock_ing_1 = Mock() + mock_ing_1.get_type.return_value = "sauce" + mock_ing_1.get_name.return_value = "chili sauce" + mock_ing_1.get_price.return_value = 300.0 + + mock_ing_2 = Mock() + mock_ing_2.get_type.return_value = "filling" + mock_ing_2.get_name.return_value = "cutlet" + mock_ing_2.get_price.return_value = 100.0 + + burger.set_buns(mock_bun) + burger.add_ingredient(mock_ing_1) + burger.add_ingredient(mock_ing_2) + + expected_receipt = ( + "(==== black bun ====)\n" + "= sauce chili sauce =\n" + "= filling cutlet =\n" + "(==== black bun ====)\n\n" + "Price: 600.0" + ) + + assert burger.get_receipt() == expected_receipt \ No newline at end of file