Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
Binary file added .coverage
Binary file not shown.
File renamed without changes.
Binary file added praktikum/.DS_Store
Binary file not shown.
Empty file added praktikum/__init__.py
Empty file.
Binary file added praktikum/__pycache__/__init__.cpython-314.pyc

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Нужно исправить: из финального проекта нужно удалить все файлы и папки, которые не относятся к решению задачи

Binary file not shown.
Binary file added praktikum/__pycache__/bun.cpython-314.pyc
Binary file not shown.
Binary file added praktikum/__pycache__/burger.cpython-314.pyc
Binary file not shown.
Binary file added praktikum/__pycache__/database.cpython-314.pyc
Binary file not shown.
Binary file not shown.
Binary file not shown.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Binary file added tests/.DS_Store
Binary file not shown.
Empty file added tests/__init__.py
Empty file.
Binary file added tests/__pycache__/__init__.cpython-314.pyc
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
29 changes: 29 additions & 0 deletions tests/test_bun.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import pytest
from praktikum.bun import Bun


class TestBun:

@pytest.mark.parametrize(
"name, price",
[
("black bun", 100),
("white bun", 200.50),
("red bun", 0),
],
)
def test_get_name_returns_correct_name(self, name, price):
bun = Bun(name, price)
assert bun.get_name() == name

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Нужно исправить: здесь и далее: это юнит тесты, на каждый метод должен быть отдельный тест


@pytest.mark.parametrize(
"name, price",
[
("black bun", 100),
("white bun", 200.50),
("red bun", 0),
],
)
def test_get_price_returns_correct_price(self, name, price):
bun = Bun(name, price)
assert bun.get_price() == price
67 changes: 67 additions & 0 deletions tests/test_burger.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
from unittest.mock import MagicMock
import pytest
from praktikum.burger import Burger


class TestBurger:
def test_set_buns(self):
burger = Burger()
mock_bun = MagicMock()
burger.set_buns(mock_bun)
assert burger.bun == mock_bun

def test_add_ingredient(self):
burger = Burger()
mock_ingredient = MagicMock()
burger.add_ingredient(mock_ingredient)
assert mock_ingredient in burger.ingredients
assert len(burger.ingredients) == 1

def test_remove_ingredient(self):
burger = Burger()
mock_ing_1 = MagicMock()
mock_ing_2 = MagicMock()
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(self):
burger = Burger()
mock_ing_1 = MagicMock()
mock_ing_2 = MagicMock()
burger.add_ingredient(mock_ing_1)
burger.add_ingredient(mock_ing_2)
burger.move_ingredient(0, 1)
assert burger.ingredients[0] == mock_ing_2
assert burger.ingredients[1] == mock_ing_1

def test_get_price(self):
burger = Burger()
mock_bun = MagicMock()
mock_bun.get_price.return_value = 100.0
mock_ingredient = MagicMock()
mock_ingredient.get_price.return_value = 50.0

burger.set_buns(mock_bun)
burger.add_ingredient(mock_ingredient)
assert burger.get_price() == 250.0

def test_get_receipt(self):
burger = Burger()
mock_bun = MagicMock()
mock_bun.get_name.return_value = "black bun"
mock_bun.get_price.return_value = 100.0
mock_ingredient = MagicMock()
mock_ingredient.get_type.return_value = "SAUCE"
mock_ingredient.get_name.return_value = "hot sauce"
mock_ingredient.get_price.return_value = 50.0

burger.set_buns(mock_bun)
burger.add_ingredient(mock_ingredient)
receipt = burger.get_receipt()

assert "(==== black bun ====)" in receipt
assert "= sauce hot sauce =" in receipt
assert "Price: 250.0" in receipt
14 changes: 14 additions & 0 deletions tests/test_database.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
from praktikum.database import Database

class TestDatabase:
def test_database_buns_count(self):
db = Database()
buns = db.available_buns()
assert len(buns) == 3
assert buns[0].get_name() == "black bun"

def test_database_ingredients_count(self):
db = Database()
ingredients = db.available_ingredients()
assert len(ingredients) == 6
assert ingredients[0].get_name() == "hot sauce"
39 changes: 39 additions & 0 deletions tests/test_ingredient.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import pytest
from praktikum.ingredient import Ingredient
from praktikum.ingredient_types import INGREDIENT_TYPE_SAUCE, INGREDIENT_TYPE_FILLING


class TestIngredient:

@pytest.mark.parametrize(
"ingredient_type, name, price",
[
(INGREDIENT_TYPE_SAUCE, "hot sauce", 100),
(INGREDIENT_TYPE_FILLING, "cutlet", 200.99),
],
)
def test_get_type_returns_correct_type(self, ingredient_type, name, price):
ingredient = Ingredient(ingredient_type, name, price)
assert ingredient.get_type() == ingredient_type

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Нужно исправить: здесь и далее: это юнит тесты, на каждый метод должен быть отдельный тест


@pytest.mark.parametrize(
"ingredient_type, name, price",
[
(INGREDIENT_TYPE_SAUCE, "hot sauce", 100),
(INGREDIENT_TYPE_FILLING, "cutlet", 200.99),
],
)
def test_get_name_returns_correct_name(self, ingredient_type, name, price):
ingredient = Ingredient(ingredient_type, name, price)
assert ingredient.get_name() == name

@pytest.mark.parametrize(
"ingredient_type, name, price",
[
(INGREDIENT_TYPE_SAUCE, "hot sauce", 100),
(INGREDIENT_TYPE_FILLING, "cutlet", 200.99),
],
)
def test_get_price_returns_correct_price(self, ingredient_type, name, price):
ingredient = Ingredient(ingredient_type, name, price)
assert ingredient.get_price() == price