-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Добавлены тесты #868
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Добавлены тесты #868
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
| 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 | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Нужно исправить: здесь и далее: это юнит тесты, на каждый метод должен быть отдельный тест |
||
| assert bun.get_price() == price | ||
| 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 |
| 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" |
| 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 | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Нужно исправить: здесь и далее: это юнит тесты, на каждый метод должен быть отдельный тест |
||
| assert ingredient.get_name() == name | ||
| assert ingredient.get_price() == price | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Нужно исправить: из финального проекта нужно удалить все файлы и папки, которые не относятся к решению задачи