diff --git a/__pycache__/__init__.cpython-314.pyc b/__pycache__/__init__.cpython-314.pyc new file mode 100644 index 000000000..14ef9d640 Binary files /dev/null and b/__pycache__/__init__.cpython-314.pyc differ diff --git a/__pycache__/bun.cpython-314.pyc b/__pycache__/bun.cpython-314.pyc new file mode 100644 index 000000000..8450b8938 Binary files /dev/null and b/__pycache__/bun.cpython-314.pyc differ diff --git a/__pycache__/burger.cpython-314.pyc b/__pycache__/burger.cpython-314.pyc new file mode 100644 index 000000000..3b836ceb8 Binary files /dev/null and b/__pycache__/burger.cpython-314.pyc differ diff --git a/__pycache__/ingredient.cpython-314.pyc b/__pycache__/ingredient.cpython-314.pyc new file mode 100644 index 000000000..d0f7b7a8d Binary files /dev/null and b/__pycache__/ingredient.cpython-314.pyc differ diff --git a/__pycache__/praktikum.cpython-314.pyc b/__pycache__/praktikum.cpython-314.pyc new file mode 100644 index 000000000..06b6efabe Binary files /dev/null and b/__pycache__/praktikum.cpython-314.pyc differ 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/praktikum.py b/praktikum.py index ec522fa6d..88b77abd1 100644 --- a/praktikum.py +++ b/praktikum.py @@ -1,9 +1,9 @@ from typing import List -from praktikum.bun import Bun -from praktikum.burger import Burger -from praktikum.database import Database -from praktikum.ingredient import Ingredient +from bun import Bun +from burger import Burger +from database import Database +from ingredient import Ingredient def main(): 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 000000000..31932864f Binary files /dev/null and b/tests/__pycache__/test_burger.cpython-314-pytest-9.0.3.pyc differ diff --git a/tests/test_burger.py b/tests/test_burger.py new file mode 100644 index 000000000..091750b3b --- /dev/null +++ b/tests/test_burger.py @@ -0,0 +1,114 @@ +import pytest +from unittest.mock import MagicMock + +from burger import Burger + + +class TestBurger: + + def test_set_buns(self): + burger = Burger() + bun = MagicMock() + + burger.set_buns(bun) + + assert burger.bun == bun + + def test_add_ingredient(self): + burger = Burger() + ingredient = MagicMock() + + burger.add_ingredient(ingredient) + + assert burger.ingredients == [ingredient] + + def test_remove_ingredient(self): + burger = Burger() + first_ingredient = MagicMock() + second_ingredient = MagicMock() + + burger.add_ingredient(first_ingredient) + burger.add_ingredient(second_ingredient) + + burger.remove_ingredient(0) + + assert burger.ingredients == [second_ingredient] + + def test_move_ingredient(self): + burger = Burger() + first_ingredient = MagicMock() + second_ingredient = MagicMock() + third_ingredient = MagicMock() + + burger.ingredients = [ + first_ingredient, + second_ingredient, + third_ingredient + ] + + burger.move_ingredient(0, 2) + + assert burger.ingredients == [ + second_ingredient, + third_ingredient, + first_ingredient + ] + + def test_get_price(self): + burger = Burger() + + bun = MagicMock() + bun.get_price.return_value = 100 + + first_ingredient = MagicMock() + first_ingredient.get_price.return_value = 50 + + second_ingredient = MagicMock() + second_ingredient.get_price.return_value = 75 + + burger.set_buns(bun) + burger.add_ingredient(first_ingredient) + burger.add_ingredient(second_ingredient) + + assert burger.get_price() == 325 + + @pytest.mark.parametrize( + "ingredients_data, expected_receipt", + [ + ( + [], + "(==== black bun ====)\n" + "(==== black bun ====)\n\n" + "Price: 200" + ), + ( + [ + ("SAUCE", "hot sauce", 100), + ("FILLING", "cutlet", 100) + ], + "(==== black bun ====)\n" + "= sauce hot sauce =\n" + "= filling cutlet =\n" + "(==== black bun ====)\n\n" + "Price: 400" + ) + ] + ) + def test_get_receipt(self, ingredients_data, expected_receipt): + burger = Burger() + + bun = MagicMock() + bun.get_name.return_value = "black bun" + bun.get_price.return_value = 100 + + burger.set_buns(bun) + + for ingredient_type, ingredient_name, ingredient_price in ingredients_data: + ingredient = MagicMock() + ingredient.get_type.return_value = ingredient_type + ingredient.get_name.return_value = ingredient_name + ingredient.get_price.return_value = ingredient_price + + burger.add_ingredient(ingredient) + + assert burger.get_receipt() == expected_receipt \ No newline at end of file