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..977aa3f2c --- /dev/null +++ b/test_burger.py @@ -0,0 +1,76 @@ +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_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() + 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 + + # Тест на удаление ингридиента + 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_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] + + # Тест на получение цены бургера + 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()[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()