diff --git a/__init__.py b/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/conftest.py b/conftest.py new file mode 100644 index 000000000..a2b0df6c2 --- /dev/null +++ b/conftest.py @@ -0,0 +1,12 @@ +from praktikum.burger import Burger +from praktikum.bun import Bun +from data import bun_data +import pytest + +@pytest.fixture +def burger(): + return Burger() + +@pytest.fixture +def bun(): + return Bun(**bun_data) \ No newline at end of file diff --git a/data.py b/data.py new file mode 100644 index 000000000..eb33fa9e3 --- /dev/null +++ b/data.py @@ -0,0 +1,13 @@ +from praktikum.ingredient_types import INGREDIENT_TYPE_FILLING, INGREDIENT_TYPE_SAUCE + +bun_data = { + 'name': 'Кунжутная булка', + 'price': 150 +} + +ingredient_data = [ + [INGREDIENT_TYPE_FILLING, 'Котлета говяжья', 320], + [INGREDIENT_TYPE_SAUCE, 'Чесночный соус', 80] +] + +exception_receipt = '(==== Кунжутная булка ====)\n= filling Котлета говяжья =\n= sauce Чесночный соус =\n(==== Кунжутная булка ====)\n\nPrice: 700' \ No newline at end of file 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 99% rename from burger.py rename to praktikum/burger.py index 2b3b6a88b..4b195996f 100644 --- a/burger.py +++ b/praktikum/burger.py @@ -3,7 +3,6 @@ from praktikum.bun import Bun from praktikum.ingredient import Ingredient - class Burger: """ Модель бургера. 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/tests/test_burger.py b/tests/test_burger.py new file mode 100644 index 000000000..6bbdf356f --- /dev/null +++ b/tests/test_burger.py @@ -0,0 +1,48 @@ +import pytest +from praktikum.ingredient import Ingredient +from data import ingredient_data, exception_receipt + +class TestBurger: + def test_set_buns_success(self, burger, bun): + burger.set_buns(bun) + assert burger.bun == bun + + @pytest.mark.parametrize('ingredient_type, name, price', ingredient_data) + def test_add_ingredients_success(self, burger, ingredient_type, name, price): + ingredient = Ingredient(ingredient_type, name, price) + burger.add_ingredient(ingredient) + assert ingredient in burger.ingredients + + def test_remove_ingredient_success(self, burger): + ingredient1 = Ingredient(*ingredient_data[0]) + burger.add_ingredient(ingredient1) + ingredient2 = Ingredient(*ingredient_data[1]) + burger.add_ingredient(ingredient2) + burger.remove_ingredient(1) + assert ingredient2 not in burger.ingredients + + def test_move_ingredient_success(self, burger): + ingredient1 = Ingredient(*ingredient_data[0]) + burger.add_ingredient(ingredient1) + ingredient2 = Ingredient(*ingredient_data[1]) + burger.add_ingredient(ingredient2) + burger.move_ingredient(0,1) + assert burger.ingredients[1] == ingredient1 + + def test_get_price_success(self, burger, bun): + burger.set_buns(bun) + ingredient1 = Ingredient(*ingredient_data[0]) + burger.add_ingredient(ingredient1) + ingredient2 = Ingredient(*ingredient_data[1]) + burger.add_ingredient(ingredient2) + buns_price = bun.get_price() * 2 + ingredients_price = ingredient_data[0][2] + ingredient_data[1][2] + assert burger.get_price() == buns_price + ingredients_price + + def test_get_receipt(self, burger, bun): + burger.set_buns(bun) + ingredient1 = Ingredient(*ingredient_data[0]) + burger.add_ingredient(ingredient1) + ingredient2 = Ingredient(*ingredient_data[1]) + burger.add_ingredient(ingredient2) + assert burger.get_receipt() == exception_receipt