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.
27 changes: 27 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Python
__pycache__/
*.pyc
*.pyo
*.pyd
.Python

# Virtual env
venv/
env/
.venv/

# IDE
.idea/
.vscode/

# pytest
.pytest_cache/
.cache/
.pytest-cov/

# OS
.DS_Store
Thumbs.db

# Logs
*.log
22 changes: 22 additions & 0 deletions conftest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import pytest
from praktikum.burger import Burger
from praktikum.bun import Bun
from praktikum.ingredient import Ingredient
from praktikum.database import Database
from praktikum.ingredient_types import INGREDIENT_TYPE_FILLING

@pytest.fixture
def bun():
return Bun("Булка звездной пыли", 100)

@pytest.fixture
def ingredient():
return Ingredient(INGREDIENT_TYPE_FILLING, "Кольца j1407b", 280)

@pytest.fixture
def burger():
return Burger()

@pytest.fixture
def database():
return Database()
File renamed without changes.
2 changes: 1 addition & 1 deletion bun.py → praktikum/bun.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ def get_name(self) -> str:
return self.name

def get_price(self) -> float:
return self.price
return self.price
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Binary file added requirement.txt
Binary file not shown.
Empty file added tests/__init__.py
Empty file.
8 changes: 8 additions & 0 deletions tests/test_bun.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import pytest

class TestBun:
def test_get_name(self, bun):
assert bun.get_name() == "Булка звездной пыли"

def test_get_price(self, bun):
assert bun.get_price() == 100
48 changes: 48 additions & 0 deletions tests/test_burger.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import pytest
from praktikum.ingredient import Ingredient
from praktikum.ingredient_types import INGREDIENT_TYPE_FILLING, INGREDIENT_TYPE_SAUCE

class TestBurger:
def test_set_buns(self, burger, bun):
burger.set_buns(bun)
assert burger.bun == bun

def test_add_ingredient(self, burger, ingredient):
burger.add_ingredient(ingredient)
assert len(burger.ingredients) == 1

def test_remove_ingredient(self, burger, ingredient):
burger.add_ingredient(ingredient)
burger.remove_ingredient(0)
assert len(burger.ingredients) == 0

def test_move_ingredient(self, burger):
ingredient_1 = Ingredient(INGREDIENT_TYPE_FILLING, "Плазма", 300)
ingredient_2 = Ingredient(INGREDIENT_TYPE_SAUCE, "Buldak 3x", 360)

burger.add_ingredient(ingredient_1)
burger.add_ingredient(ingredient_2)

burger.move_ingredient(0, 1)

assert burger.ingredients[0] == ingredient_2

def test_get_price(self, burger, bun):
burger.set_buns(bun)
ingredient_1 = Ingredient(INGREDIENT_TYPE_FILLING, "Плазма", 300)
ingredient_2 = Ingredient(INGREDIENT_TYPE_SAUCE, "Buldak 3x", 360)

burger.add_ingredient(ingredient_1)
burger.add_ingredient(ingredient_2)

assert burger.get_price() == 860

def test_get_receipt(self, burger, bun, ingredient):
burger.set_buns(bun)
burger.add_ingredient(ingredient)

receipt = burger.get_receipt()

assert 'Булка звездной пыли' in receipt
assert 'Кольца j1407b' in receipt
assert 'Price:' in receipt
12 changes: 12 additions & 0 deletions tests/test_database.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import pytest

class TestDatabase:
def test_available_buns(self, database):
buns = database.available_buns()

assert len(buns) == 3

def test_available_ingredients(self, database):
ingredients = database.available_ingredients()

assert len(ingredients) == 6
18 changes: 18 additions & 0 deletions tests/test_ingredient.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
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, expected_type", [
(Ingredient(INGREDIENT_TYPE_SAUCE, "Гургунзола", 60), INGREDIENT_TYPE_SAUCE),
(Ingredient(INGREDIENT_TYPE_FILLING, "Нестабильная энергия Цефеида", 150), INGREDIENT_TYPE_FILLING)
]
)
def test_get_type(self, ingredient_type, expected_type):
assert ingredient_type.get_type() == expected_type

def test_get_name(self, ingredient):
assert ingredient.get_name() == "Кольца j1407b"

def test_get_price(self, ingredient):
assert ingredient.get_price() == 280