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 .coverage
Binary file not shown.
2 changes: 2 additions & 0 deletions data_for_tests/data_expected_receipt.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
class ExpectedReceipt:
expected_receipt = ('(==== Флюоресцентная булка R2-D3 ====)\n= sauce Соус традиционный галактический =\n= filling Плоды Фалленианского дерева =\n= filling Мини-салат Экзо-Плантаго =\n(==== Флюоресцентная булка R2-D3 ====)\n\nPrice: 7265')
5 changes: 5 additions & 0 deletions data_for_tests/data_for_buns.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
class DataBuns:
buns = [
['Флюоресцентная булка R2-D3', 988],
['Краторная булка N-200i', 1255]
]
19 changes: 19 additions & 0 deletions data_for_tests/data_ingrid.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
from praktikum.ingredient_types import INGREDIENT_TYPE_SAUCE, INGREDIENT_TYPE_FILLING
class DataIngrid:

all_ingrids = [
[INGREDIENT_TYPE_FILLING, 'Мясо бессмертных моллюсков', 1337],
[INGREDIENT_TYPE_FILLING, 'Говяжий метеорит (отбивная)', 3000],
[INGREDIENT_TYPE_FILLING, 'Биокотлета из марсианской Магнолии', 424],
[INGREDIENT_TYPE_FILLING, 'Филе Люминесцентного тетраодонтимформа', 988],
[INGREDIENT_TYPE_FILLING, 'Хрустящие минеральные кольца', 300],
[INGREDIENT_TYPE_FILLING, 'Плоды Фалленианского дерева', 874],
[INGREDIENT_TYPE_FILLING, 'Кристаллы марсианских альфа-сахаридов', 762],
[INGREDIENT_TYPE_FILLING, 'Мини-салат Экзо-Плантаго', 4400],
[INGREDIENT_TYPE_FILLING, 'Сыр с астероидной плесенью', 4142],
[INGREDIENT_TYPE_SAUCE, 'Соус Spicy-X', 90],
[INGREDIENT_TYPE_SAUCE, 'Соус фирменный Space Sauce', 80],
[INGREDIENT_TYPE_SAUCE, 'Соус традиционный галактический', 15],
[INGREDIENT_TYPE_SAUCE, 'Соус с шипами Антарианского плоскоходца', 88]
]

Binary file added requirements.txt
Binary file not shown.
16 changes: 16 additions & 0 deletions tests/test_for_class_bun.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import pytest
from data_for_tests.data_for_buns import DataBuns
from praktikum.bun import Bun

class TestBun:

@pytest.mark.parametrize('name, price', DataBuns.buns)
def test_bun_get_name(self, name, price):
bun = Bun(name, price)
assert bun.get_name() == name


@pytest.mark.parametrize('name, price', DataBuns.buns)
def test_bun_get_price(self, name, price):
bun = Bun(name, price)
assert bun.get_price() == price
90 changes: 90 additions & 0 deletions tests/test_for_class_burger.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
import pytest
from unittest.mock import Mock
from praktikum.bun import Bun
from praktikum.ingredient import Ingredient
from praktikum.burger import Burger
from data_for_tests.data_for_buns import DataBuns
from data_for_tests.data_ingrid import DataIngrid
from data_for_tests.data_expected_receipt import ExpectedReceipt
from praktikum.ingredient_types import INGREDIENT_TYPE_SAUCE, INGREDIENT_TYPE_FILLING

class TestBurger:

@pytest.mark.parametrize("name, price", DataBuns.buns)
def test_burg_set_buns(self, name, price):
burger = Burger()
bun = Bun(name, price)
burger.set_buns(bun)
assert burger.bun == bun


@pytest.mark.parametrize("ingredient_type, name, price", DataIngrid.all_ingrids)
def test_burg_add_ingredient(self, ingredient_type, name, price):
burger = Burger()
ingrid = Ingredient(ingredient_type, name, price)
burger.add_ingredient(ingrid)
assert ingrid in burger.ingredients

@pytest.mark.parametrize("ingredient_type, name, price", DataIngrid.all_ingrids)
def test_burg_remove_ingredient(self, ingredient_type, name, price):
burger = Burger()
ingrid1 = Ingredient(ingredient_type, name, price)
burger.add_ingredient(ingrid1)
ingrid2 = Ingredient(ingredient_type, name, price)
burger.add_ingredient(ingrid2)
burger.remove_ingredient(1)
assert len(burger.ingredients) == 1


@pytest.mark.parametrize("ingredient_type, name, price", DataIngrid.all_ingrids)
def test_burg_move_ingredient(self, ingredient_type, name, price):
burger = Burger()
ingrid1 = Ingredient(ingredient_type, name, price)
burger.add_ingredient(ingrid1)
ingrid2 = Ingredient(ingredient_type, name, price)
burger.add_ingredient(ingrid2)
burger.move_ingredient(0, 1)
assert burger.ingredients[0] == ingrid2
assert burger.ingredients[1] == ingrid1


@pytest.mark.parametrize("name_b, price_b", DataBuns.buns)
@pytest.mark.parametrize("ingredient_type, name, price", DataIngrid.all_ingrids)
def test_burg_get_price(self, name_b, price_b, ingredient_type, name, price):
burger = Burger()
bun = Bun(name_b, price_b)
burger.set_buns(bun)
bun_price = burger.bun.get_price() * 2
ingrid = Ingredient(ingredient_type, name, price)
burger.add_ingredient(ingrid)
ingr_price = ingrid.get_price()
fin_price = bun_price + ingr_price
assert burger.get_price() == fin_price


def test_burg_get_receipt(self):
burger = Burger()
mock_bun = Mock()

mock_bun.get_name.return_value = DataBuns.buns[0][0]
mock_bun.get_price.return_value = DataBuns.buns[0][1]
burger.bun = mock_bun

mock_ingr1 = Mock()
mock_ingr1.get_name.return_value = DataIngrid.all_ingrids[11][1]
mock_ingr1.get_type.return_value = INGREDIENT_TYPE_SAUCE
mock_ingr1.get_price.return_value = DataIngrid.all_ingrids[11][2]

mock_ingr2 = Mock()
mock_ingr2.get_name.return_value = DataIngrid.all_ingrids[5][1]
mock_ingr2.get_type.return_value = INGREDIENT_TYPE_FILLING
mock_ingr2.get_price.return_value = DataIngrid.all_ingrids[5][2]

mock_ingr3 = Mock()
mock_ingr3.get_name.return_value = DataIngrid.all_ingrids[7][1]
mock_ingr3.get_type.return_value = INGREDIENT_TYPE_FILLING
mock_ingr3.get_price.return_value = DataIngrid.all_ingrids[7][2]

burger.ingredients = [mock_ingr1, mock_ingr2, mock_ingr3]

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


class TestForDatabase:

def test_database_available_buns(self):
database =Database()
db_names = database.available_buns()
names = ["black bun", "white bun", "red bun"]
getting_names = []
for bun in db_names:
get_name= bun.get_name()
getting_names.append(get_name)
assert names == getting_names


def test_database_available_ingredients(self):
database =Database()
db_names = database.available_ingredients()
names = ["hot sauce", "sour cream", "chili sauce", "cutlet", "dinosaur", "sausage"]
getting_names = []
for bun in db_names:
get_name= bun.get_name()
getting_names.append(get_name)
assert names == getting_names
21 changes: 21 additions & 0 deletions tests/test_for_class_ingridient.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import pytest
from praktikum.ingredient import Ingredient
from data_for_tests.data_ingrid import DataIngrid


class TestForIngredient:

@pytest.mark.parametrize("ingredient_type, name, price", DataIngrid.all_ingrids)
def test_ingrid_get_name(self, ingredient_type, name, price):
ingredient = Ingredient(ingredient_type, name, price)
assert ingredient.get_name() == name

@pytest.mark.parametrize("ingredient_type, name, price", DataIngrid.all_ingrids)
def test_ingrid_get_price(self, ingredient_type, name, price):
ingredient = Ingredient(ingredient_type, name, price)
assert ingredient.get_price() == price

@pytest.mark.parametrize("ingredient_type, name, price", DataIngrid.all_ingrids)
def test_ingrid_get_type(self, ingredient_type, name, price):
ingredient = Ingredient(ingredient_type, name, price)
assert ingredient.get_type() == ingredient_type