From 87a29e465bd92d72825503f2d31cb99fc139491a Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Thu, 21 May 2026 14:44:21 +0500 Subject: [PATCH 1/5] Add test_set_buns and test_add_ingredient --- .gitignore | 1 + __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 test_burger.py | 28 +++++++++++++++++++ 9 files changed, 29 insertions(+) create mode 100644 .gitignore 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 test_burger.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..bee8a64b7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +__pycache__ diff --git a/__init__.py b/praktikum/__init__.py similarity index 100% rename from __init__.py rename to praktikum/__init__.py 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/praktikum.py b/praktikum/praktikum.py similarity index 100% rename from praktikum.py rename to praktikum/praktikum.py diff --git a/test_burger.py b/test_burger.py new file mode 100644 index 000000000..c6dd0466c --- /dev/null +++ b/test_burger.py @@ -0,0 +1,28 @@ +import praktikum.ingredient_types + +from unittest.mock import Mock +from praktikum.burger import Burger +from praktikum.bun import Bun +from praktikum.database import Database + + +class TestBurger: + + # Тест на установку булочек + def test_set_buns(self): + burger = Burger() + bun = Bun('Testbun', 300.0) + burger.set_buns(bun) + assert burger.bun == bun + + # Тест на добавление ингридиента + def test_add_ingredient(self): + burger = Burger() + mock_ingredient = Mock() + mock_ingredient.get_name.return_value = 'Testbun' + mock_ingredient.get_price.return_value = 300.0 + mock_ingredient.get_type.return_value = praktikum.ingredient_types.INGREDIENT_TYPE_FILLING + burger.add_ingredient(mock_ingredient) + assert burger.ingredients[0].get_name() == 'Testbun' + assert burger.ingredients[0].get_price() == 300.0 + assert burger.ingredients[0].get_type() == praktikum.ingredient_types.INGREDIENT_TYPE_FILLING \ No newline at end of file From 381d4fd934dd305cebec7f9f26f0b2a4d8c30223 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Thu, 21 May 2026 15:00:10 +0500 Subject: [PATCH 2/5] Add test_remove_ingredient --- test_burger.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/test_burger.py b/test_burger.py index c6dd0466c..56f841bcb 100644 --- a/test_burger.py +++ b/test_burger.py @@ -25,4 +25,12 @@ def test_add_ingredient(self): burger.add_ingredient(mock_ingredient) assert burger.ingredients[0].get_name() == 'Testbun' assert burger.ingredients[0].get_price() == 300.0 - assert burger.ingredients[0].get_type() == praktikum.ingredient_types.INGREDIENT_TYPE_FILLING \ No newline at end of file + assert burger.ingredients[0].get_type() == praktikum.ingredient_types.INGREDIENT_TYPE_FILLING + + # Тест на удаление ингридиента + def test_remove_ingredient(self): + burger = Burger() + mock_ingredient = Mock() + burger.add_ingredient(mock_ingredient) + burger.remove_ingredient(0) + assert len(burger.ingredients) == 0 \ No newline at end of file From aff2b4f96b264b864595d1711339464a94117005 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Thu, 21 May 2026 15:12:25 +0500 Subject: [PATCH 3/5] Add test_move_ingredient --- test_burger.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/test_burger.py b/test_burger.py index 56f841bcb..ac95d23a7 100644 --- a/test_burger.py +++ b/test_burger.py @@ -33,4 +33,14 @@ def test_remove_ingredient(self): mock_ingredient = Mock() burger.add_ingredient(mock_ingredient) burger.remove_ingredient(0) - assert len(burger.ingredients) == 0 \ No newline at end of file + assert len(burger.ingredients) == 0 + + # Тест на перемещение слоя с ингридиентом + 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(1, 0) + assert burger.ingredients == [mock_ingredient_2, mock_ingredient_1] From d149e8709184040416a1b9d91640b686e0458e88 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Thu, 21 May 2026 15:27:16 +0500 Subject: [PATCH 4/5] Add test_get_price --- test_burger.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/test_burger.py b/test_burger.py index ac95d23a7..5332eba84 100644 --- a/test_burger.py +++ b/test_burger.py @@ -44,3 +44,12 @@ def test_move_ingredient(self): burger.add_ingredient(mock_ingredient_2) burger.move_ingredient(1, 0) assert burger.ingredients == [mock_ingredient_2, mock_ingredient_1] + + # Тест на получение цены бургера + def test_get_price(self): + burger = Burger() + database = Database() + burger.set_buns(database.available_buns()[0]) + burger.add_ingredient(database.available_ingredients()[0]) + burger.add_ingredient(database.available_ingredients()[2]) + assert burger.get_price() == 600.0 From 9016e95f9b21fd1491f07c5fd2ee9241a0ba68f2 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Thu, 21 May 2026 16:06:23 +0500 Subject: [PATCH 5/5] Add test_init --- test_burger.py | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/test_burger.py b/test_burger.py index 5332eba84..977aa3f2c 100644 --- a/test_burger.py +++ b/test_burger.py @@ -8,6 +8,13 @@ class TestBurger: + # Тест на конструктор + def test_init(self): + burger = Burger() + assert burger.bun is None + assert isinstance(burger.ingredients, list) + assert len(burger.ingredients) == 0 + # Тест на установку булочек def test_set_buns(self): burger = Burger() @@ -51,5 +58,19 @@ def test_get_price(self): database = Database() burger.set_buns(database.available_buns()[0]) burger.add_ingredient(database.available_ingredients()[0]) - burger.add_ingredient(database.available_ingredients()[2]) - assert burger.get_price() == 600.0 + burger.add_ingredient(database.available_ingredients()[3]) + assert burger.get_price() == 400.0 + + # Тест на получение рецепта бургера + def test_get_receipt(self): + burger = Burger() + database = Database() + burger.set_buns(database.available_buns()[0]) + burger.add_ingredient(database.available_ingredients()[0]) + burger.add_ingredient(database.available_ingredients()[3]) + expected_receipt = "(==== black bun ====)\n"\ + "= sauce hot sauce =\n"\ + "= filling cutlet =\n"\ + "(==== black bun ====)\n\n"\ + "Price: 400" + assert expected_receipt == burger.get_receipt()