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
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 2 additions & 0 deletions pytest.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[pytest]
pythonpath = .
2 changes: 2 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
pytest
pytest-cov
15 changes: 15 additions & 0 deletions tests/test_bun.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
from praktikum.bun import Bun
import pytest


class TestBun:
@pytest.mark.parametrize("name, price", [
("black bun", 100),
("white bun", 200),
("red bun", 300)
])
def test_bun_initialization(self, name, price):
bun = Bun(name, price)

assert bun.get_name() == name
assert bun.get_price() == price
101 changes: 101 additions & 0 deletions tests/test_burger.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
from praktikum.burger import Burger
from unittest.mock import Mock


class TestBurger:
def test_set_buns(self):
burger = Burger()
mock_bun = Mock()
mock_bun.get_price.return_value = 100
mock_bun.get_name.return_value = "black bun"

burger.set_buns(mock_bun)
assert burger.bun == mock_bun

def test_add_ingredient(self):
burger = Burger()
mock_ingredient = Mock()
mock_ingredient.get_price.return_value = 50
mock_ingredient.get_name.return_value = "sausage"
mock_ingredient.get_type.return_value = "FILLING"

burger.add_ingredient(mock_ingredient)
assert burger.ingredients[0] == mock_ingredient

def test_remove_ingredient(self):
burger = Burger()
mock_ingredient = Mock()
mock_ingredient.get_price.return_value = 50
mock_ingredient.get_name.return_value = "sausage"
mock_ingredient.get_type.return_value = "FILLING"

burger.add_ingredient(mock_ingredient)
burger.remove_ingredient(0)

assert len(burger.ingredients) == 0

def test_move_ingredient(self):
burger = Burger()
mock_ingredient1 = Mock()
mock_ingredient1.get_price.return_value = 50
mock_ingredient1.get_name.return_value = "sausage"
mock_ingredient1.get_type.return_value = "FILLING"

mock_ingredient2 = Mock()
mock_ingredient2.get_price.return_value = 30
mock_ingredient2.get_name.return_value = "ketchup"
mock_ingredient2.get_type.return_value = "SAUCE"

burger.add_ingredient(mock_ingredient1)
burger.add_ingredient(mock_ingredient2)

burger.move_ingredient(0, 1)

assert burger.ingredients[0] == mock_ingredient2
assert burger.ingredients[1] == mock_ingredient1

def test_get_price(self):
burger = Burger()
mock_bun = Mock()
mock_bun.get_price.return_value = 100
mock_bun.get_name.return_value = "black bun"

mock_ingredient1 = Mock()
mock_ingredient1.get_price.return_value = 50
mock_ingredient1.get_name.return_value = "sausage"
mock_ingredient1.get_type.return_value = "FILLING"

mock_ingredient2 = Mock()
mock_ingredient2.get_price.return_value = 30
mock_ingredient2.get_name.return_value = "ketchup"
mock_ingredient2.get_type.return_value = "SAUCE"

burger.set_buns(mock_bun)
burger.add_ingredient(mock_ingredient1)
burger.add_ingredient(mock_ingredient2)

assert burger.get_price() == 280

def test_get_receipt(self):
burger = Burger()
mock_bun = Mock()
mock_bun.get_price.return_value = 100
mock_bun.get_name.return_value = "black bun"

mock_ingredient1 = Mock()
mock_ingredient1.get_price.return_value = 50
mock_ingredient1.get_name.return_value = "sausage"
mock_ingredient1.get_type.return_value = "FILLING"

mock_ingredient2 = Mock()
mock_ingredient2.get_price.return_value = 30
mock_ingredient2.get_name.return_value = "ketchup"
mock_ingredient2.get_type.return_value = "SAUCE"

burger.set_buns(mock_bun)
burger.add_ingredient(mock_ingredient1)
burger.add_ingredient(mock_ingredient2)

expected_receipt = '(==== black bun ====)\n= filling sausage =\n= sauce ketchup =\n(==== black bun ====)\n\nPrice: 280'

assert burger.get_receipt() == expected_receipt
26 changes: 26 additions & 0 deletions tests/test_database.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
from praktikum.database import Database
from praktikum.ingredient_types import INGREDIENT_TYPE_SAUCE


class TestDatabase:
def test_database_has_buns(self):
database = Database()

assert len(database.available_buns()) > 0

def test_available_buns(self):
database = Database()

buns = database.available_buns()

assert buns[0].name == "black bun"
assert buns[0].price == 100

def test_available_ingredients(self):
database = Database()

ingredients = database.available_ingredients()

assert ingredients[0].name == "hot sauce"
assert ingredients[0].price == 100
assert ingredients[0].type == INGREDIENT_TYPE_SAUCE
31 changes: 31 additions & 0 deletions tests/test_ingredient.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
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, "sausage", 300),
])
def test_ingredient_initialization(self, ingredient_type, name, price):
ingredient = Ingredient(ingredient_type, name, price)

assert ingredient.type == ingredient_type
assert ingredient.name == name
assert ingredient.price == price

def test_get_name(self):
ingredient = Ingredient(INGREDIENT_TYPE_FILLING, "sausage", 50)

assert ingredient.get_name() == "sausage"

def test_get_price(self):
ingredient = Ingredient(INGREDIENT_TYPE_FILLING, "sausage", 50)

assert ingredient.get_price() == 50

def test_get_type(self):
ingredient = Ingredient(INGREDIENT_TYPE_SAUCE, "hot sauce", 50)

assert ingredient.get_type() == INGREDIENT_TYPE_SAUCE