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.
5 changes: 5 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions .idea/Diplom_1.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/inspectionProfiles/profiles_settings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

File renamed without changes.
File renamed without changes.
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 added praktikum/__pycache__/ingredient.cpython-314.pyc
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.
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.
16 changes: 16 additions & 0 deletions tests/test_bun.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
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_bun_init_and_getters(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.

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

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"
17 changes: 17 additions & 0 deletions tests/test_ingredient.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
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_ingredient_init_and_getters(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.

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

assert ingredient.get_name() == name
assert ingredient.get_price() == price