From 6144a29cfad34042e7bce98a2ef940511f8424b4 Mon Sep 17 00:00:00 2001 From: Polina Spiridonova Date: Sun, 15 Mar 2026 22:17:42 +0300 Subject: [PATCH 1/5] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D1=82=D0=B5=D1=81=D1=82=D1=8B=20=D0=B8=20=D0=BE?= =?UTF-8?q?=D1=82=D1=87=D0=B5=D1=82=20=D0=BE=20=D0=BF=D0=BE=D0=BA=D1=80?= =?UTF-8?q?=D1=8B=D1=82=D0=B8=D0=B8=20=D0=B4=D0=BB=D1=8F=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F=201=20=D0=B4=D0=B8=D0=BF=D0=BB?= =?UTF-8?q?=D0=BE=D0=BC=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=BF=D1=80=D0=BE=D0=B5?= =?UTF-8?q?=D0=BA=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 4 + conftest.py | 53 + coverage.json | 1911 +++++++++++++++++ __init__.py => praktikum/__init__.py | 0 bun.py => praktikum/bun.py | 0 burger.py => praktikum/burger.py | 1 - database.py => praktikum/database.py | 0 ingredient.py => praktikum/ingredient.py | 0 .../ingredient_types.py | 0 requirements.txt | 3 + tests.py | 143 ++ 11 files changed, 2114 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 conftest.py create mode 100644 coverage.json rename __init__.py => praktikum/__init__.py (100%) rename bun.py => praktikum/bun.py (100%) rename burger.py => praktikum/burger.py (99%) rename database.py => praktikum/database.py (100%) rename ingredient.py => praktikum/ingredient.py (100%) rename ingredient_types.py => praktikum/ingredient_types.py (100%) create mode 100644 requirements.txt create mode 100644 tests.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..489f9e2ae --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.DS_Store +__pycache__/ +.pytest_cache/ +.venv/ \ No newline at end of file diff --git a/conftest.py b/conftest.py new file mode 100644 index 000000000..41de26ab3 --- /dev/null +++ b/conftest.py @@ -0,0 +1,53 @@ +import pytest +from praktikum.bun import Bun +from praktikum.database import Database +from praktikum.ingredient import Ingredient +from praktikum.burger import Burger +from unittest.mock import Mock, patch +from praktikum.ingredient_types import INGREDIENT_TYPE_SAUCE, INGREDIENT_TYPE_FILLING + +# Фикстуры для моков + +@pytest.fixture +def bun_mock(): + mock_bun = Mock(spec=Bun) + mock_bun.get_name.return_value = 'Каменная булка' + mock_bun.get_price.return_value = 1000 + return mock_bun + +@pytest.fixture +def ingredient_mock(): + mock_ingredient = Mock(spec=Ingredient) + mock_ingredient.get_name.return_value = 'Тестовый соус' + mock_ingredient.get_price.return_value = 50 + mock_ingredient.get_type.return_value = INGREDIENT_TYPE_SAUCE + return mock_ingredient + +@pytest.fixture +def ingredient_mock_filling(): + mock_ingredient = Mock(spec=Ingredient) + mock_ingredient.get_name.return_value = 'Тестовая начинка' + mock_ingredient.get_price.return_value = 750 + mock_ingredient.get_type.return_value = INGREDIENT_TYPE_FILLING + return mock_ingredient + + +# Фикстуры для объектов + +@pytest.fixture +def bun(): + return Bun("Черная булка", 900) + +@pytest.fixture +def database(): + return Database() + +@pytest.fixture +def ingredient(): + return Ingredient(INGREDIENT_TYPE_SAUCE, "Острый соус", 99) + +@pytest.fixture +def burger(): + return Burger() + + diff --git a/coverage.json b/coverage.json new file mode 100644 index 000000000..26f69664d --- /dev/null +++ b/coverage.json @@ -0,0 +1,1911 @@ +{ + "meta": { + "format": 3, + "version": "7.12.0", + "timestamp": "2026-03-15T21:32:33.366894", + "branch_coverage": false, + "show_contexts": false + }, + "files": { + "conftest.py": { + "executed_lines": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 11, + 12, + 13, + 14, + 15, + 16, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 37, + 38, + 39, + 41, + 42, + 43, + 45, + 46, + 47, + 49, + 50, + 51 + ], + "summary": { + "covered_lines": 39, + "num_statements": 39, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "functions": { + "bun_mock": { + "executed_lines": [ + 13, + 14, + 15, + 16 + ], + "summary": { + "covered_lines": 4, + "num_statements": 4, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "ingredient_mock": { + "executed_lines": [ + 20, + 21, + 22, + 23, + 24 + ], + "summary": { + "covered_lines": 5, + "num_statements": 5, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "ingredient_mock_filling": { + "executed_lines": [ + 28, + 29, + 30, + 31, + 32 + ], + "summary": { + "covered_lines": 5, + "num_statements": 5, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "bun": { + "executed_lines": [ + 39 + ], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "database": { + "executed_lines": [ + 43 + ], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "ingredient": { + "executed_lines": [ + 47 + ], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "burger": { + "executed_lines": [ + 51 + ], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "": { + "executed_lines": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 11, + 12, + 18, + 19, + 26, + 27, + 37, + 38, + 41, + 42, + 45, + 46, + 49, + 50 + ], + "summary": { + "covered_lines": 21, + "num_statements": 21, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + } + }, + "classes": { + "": { + "executed_lines": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 11, + 12, + 13, + 14, + 15, + 16, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 37, + 38, + 39, + 41, + 42, + 43, + 45, + 46, + 47, + 49, + 50, + 51 + ], + "summary": { + "covered_lines": 39, + "num_statements": 39, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + } + } + }, + "praktikum.py": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 20, + "percent_covered": 0.0, + "percent_covered_display": "0", + "missing_lines": 20, + "excluded_lines": 0, + "percent_statements_covered": 0.0, + "percent_statements_covered_display": "0" + }, + "missing_lines": [ + 1, + 3, + 4, + 5, + 6, + 9, + 11, + 14, + 17, + 20, + 23, + 25, + 26, + 27, + 28, + 31, + 34, + 37, + 40, + 41 + ], + "excluded_lines": [], + "functions": { + "main": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 12, + "percent_covered": 0.0, + "percent_covered_display": "0", + "missing_lines": 12, + "excluded_lines": 0, + "percent_statements_covered": 0.0, + "percent_statements_covered_display": "0" + }, + "missing_lines": [ + 11, + 14, + 17, + 20, + 23, + 25, + 26, + 27, + 28, + 31, + 34, + 37 + ], + "excluded_lines": [] + }, + "": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 8, + "percent_covered": 0.0, + "percent_covered_display": "0", + "missing_lines": 8, + "excluded_lines": 0, + "percent_statements_covered": 0.0, + "percent_statements_covered_display": "0" + }, + "missing_lines": [ + 1, + 3, + 4, + 5, + 6, + 9, + 40, + 41 + ], + "excluded_lines": [] + } + }, + "classes": { + "": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 20, + "percent_covered": 0.0, + "percent_covered_display": "0", + "missing_lines": 20, + "excluded_lines": 0, + "percent_statements_covered": 0.0, + "percent_statements_covered_display": "0" + }, + "missing_lines": [ + 1, + 3, + 4, + 5, + 6, + 9, + 11, + 14, + 17, + 20, + 23, + 25, + 26, + 27, + 28, + 31, + 34, + 37, + 40, + 41 + ], + "excluded_lines": [] + } + } + }, + "praktikum/__init__.py": { + "executed_lines": [ + 0 + ], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "functions": { + "": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + } + }, + "classes": { + "": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + } + } + }, + "praktikum/bun.py": { + "executed_lines": [ + 1, + 2, + 7, + 8, + 9, + 11, + 12, + 14, + 15 + ], + "summary": { + "covered_lines": 8, + "num_statements": 8, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "functions": { + "Bun.__init__": { + "executed_lines": [ + 8, + 9 + ], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "Bun.get_name": { + "executed_lines": [ + 12 + ], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "Bun.get_price": { + "executed_lines": [ + 15 + ], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "": { + "executed_lines": [ + 1, + 2, + 7, + 11, + 14 + ], + "summary": { + "covered_lines": 4, + "num_statements": 4, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + } + }, + "classes": { + "Bun": { + "executed_lines": [ + 8, + 9, + 12, + 15 + ], + "summary": { + "covered_lines": 4, + "num_statements": 4, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "": { + "executed_lines": [ + 1, + 2, + 7, + 11, + 14 + ], + "summary": { + "covered_lines": 4, + "num_statements": 4, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + } + } + }, + "praktikum/burger.py": { + "executed_lines": [ + 1, + 2, + 3, + 6, + 7, + 14, + 15, + 16, + 18, + 19, + 21, + 22, + 24, + 25, + 27, + 28, + 30, + 31, + 33, + 34, + 36, + 38, + 39, + 41, + 42, + 44, + 45, + 47 + ], + "summary": { + "covered_lines": 27, + "num_statements": 27, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "functions": { + "Burger.__init__": { + "executed_lines": [ + 15, + 16 + ], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "Burger.set_buns": { + "executed_lines": [ + 19 + ], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "Burger.add_ingredient": { + "executed_lines": [ + 22 + ], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "Burger.remove_ingredient": { + "executed_lines": [ + 25 + ], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "Burger.move_ingredient": { + "executed_lines": [ + 28 + ], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "Burger.get_price": { + "executed_lines": [ + 31, + 33, + 34, + 36 + ], + "summary": { + "covered_lines": 4, + "num_statements": 4, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "Burger.get_receipt": { + "executed_lines": [ + 39, + 41, + 42, + 44, + 45, + 47 + ], + "summary": { + "covered_lines": 6, + "num_statements": 6, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "": { + "executed_lines": [ + 1, + 2, + 3, + 6, + 7, + 14, + 18, + 21, + 24, + 27, + 30, + 38 + ], + "summary": { + "covered_lines": 11, + "num_statements": 11, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + } + }, + "classes": { + "Burger": { + "executed_lines": [ + 15, + 16, + 19, + 22, + 25, + 28, + 31, + 33, + 34, + 36, + 39, + 41, + 42, + 44, + 45, + 47 + ], + "summary": { + "covered_lines": 16, + "num_statements": 16, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "": { + "executed_lines": [ + 1, + 2, + 3, + 6, + 7, + 14, + 18, + 21, + 24, + 27, + 30, + 38 + ], + "summary": { + "covered_lines": 11, + "num_statements": 11, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + } + } + }, + "praktikum/database.py": { + "executed_lines": [ + 1, + 3, + 4, + 5, + 8, + 9, + 13, + 14, + 15, + 17, + 18, + 19, + 21, + 22, + 23, + 25, + 26, + 27, + 29, + 30, + 32, + 33 + ], + "summary": { + "covered_lines": 21, + "num_statements": 21, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "functions": { + "Database.__init__": { + "executed_lines": [ + 14, + 15, + 17, + 18, + 19, + 21, + 22, + 23, + 25, + 26, + 27 + ], + "summary": { + "covered_lines": 11, + "num_statements": 11, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "Database.available_buns": { + "executed_lines": [ + 30 + ], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "Database.available_ingredients": { + "executed_lines": [ + 33 + ], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "": { + "executed_lines": [ + 1, + 3, + 4, + 5, + 8, + 9, + 13, + 29, + 32 + ], + "summary": { + "covered_lines": 8, + "num_statements": 8, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + } + }, + "classes": { + "Database": { + "executed_lines": [ + 14, + 15, + 17, + 18, + 19, + 21, + 22, + 23, + 25, + 26, + 27, + 30, + 33 + ], + "summary": { + "covered_lines": 13, + "num_statements": 13, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "": { + "executed_lines": [ + 1, + 3, + 4, + 5, + 8, + 9, + 13, + 29, + 32 + ], + "summary": { + "covered_lines": 8, + "num_statements": 8, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + } + } + }, + "praktikum/ingredient.py": { + "executed_lines": [ + 1, + 2, + 8, + 9, + 10, + 11, + 13, + 14, + 16, + 17, + 19, + 20 + ], + "summary": { + "covered_lines": 11, + "num_statements": 11, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "functions": { + "Ingredient.__init__": { + "executed_lines": [ + 9, + 10, + 11 + ], + "summary": { + "covered_lines": 3, + "num_statements": 3, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "Ingredient.get_price": { + "executed_lines": [ + 14 + ], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "Ingredient.get_name": { + "executed_lines": [ + 17 + ], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "Ingredient.get_type": { + "executed_lines": [ + 20 + ], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "": { + "executed_lines": [ + 1, + 2, + 8, + 13, + 16, + 19 + ], + "summary": { + "covered_lines": 5, + "num_statements": 5, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + } + }, + "classes": { + "Ingredient": { + "executed_lines": [ + 9, + 10, + 11, + 14, + 17, + 20 + ], + "summary": { + "covered_lines": 6, + "num_statements": 6, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "": { + "executed_lines": [ + 1, + 2, + 8, + 13, + 16, + 19 + ], + "summary": { + "covered_lines": 5, + "num_statements": 5, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + } + } + }, + "praktikum/ingredient_types.py": { + "executed_lines": [ + 1, + 6, + 7 + ], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "functions": { + "": { + "executed_lines": [ + 1, + 6, + 7 + ], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + } + }, + "classes": { + "": { + "executed_lines": [ + 1, + 6, + 7 + ], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + } + } + }, + "tests.py": { + "executed_lines": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 9, + 12, + 17, + 18, + 19, + 20, + 23, + 24, + 27, + 28, + 31, + 33, + 34, + 35, + 38, + 39, + 40, + 41, + 42, + 43, + 46, + 47, + 48, + 49, + 50, + 54, + 57, + 58, + 59, + 63, + 65, + 66, + 67, + 71, + 73, + 74, + 75, + 78, + 80, + 81, + 83, + 84, + 86, + 87, + 88, + 91, + 93, + 94, + 95, + 97, + 100, + 101, + 103, + 105, + 106, + 107, + 109, + 110, + 111, + 112, + 116, + 119, + 125, + 127, + 128, + 129, + 130, + 134, + 135, + 138, + 139, + 142, + 143 + ], + "summary": { + "covered_lines": 80, + "num_statements": 80, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "functions": { + "TestBun.test_bun_create": { + "executed_lines": [ + 18, + 19, + 20 + ], + "summary": { + "covered_lines": 3, + "num_statements": 3, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "TestBun.test_bun_get_name": { + "executed_lines": [ + 24 + ], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "TestBun.test_bun_get_price": { + "executed_lines": [ + 28 + ], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "TestDatabase.test_database_init": { + "executed_lines": [ + 34, + 35 + ], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "TestDatabase.test_available_buns": { + "executed_lines": [ + 39, + 40, + 41, + 42, + 43 + ], + "summary": { + "covered_lines": 5, + "num_statements": 5, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "TestDatabase.test_available_ingredients": { + "executed_lines": [ + 47, + 48, + 49, + 50 + ], + "summary": { + "covered_lines": 4, + "num_statements": 4, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "TestBurger.test_set_buns": { + "executed_lines": [ + 58, + 59 + ], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "TestBurger.test_add_ingredient": { + "executed_lines": [ + 65, + 66, + 67 + ], + "summary": { + "covered_lines": 3, + "num_statements": 3, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "TestBurger.test_remove_ingredient": { + "executed_lines": [ + 73, + 74, + 75 + ], + "summary": { + "covered_lines": 3, + "num_statements": 3, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "TestBurger.test_move_ingredient": { + "executed_lines": [ + 80, + 81, + 83, + 84, + 86, + 87, + 88 + ], + "summary": { + "covered_lines": 7, + "num_statements": 7, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "TestBurger.test_get_burger_price": { + "executed_lines": [ + 93, + 94, + 95, + 97 + ], + "summary": { + "covered_lines": 4, + "num_statements": 4, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "TestBurger.test_get_receipt": { + "executed_lines": [ + 103, + 105, + 106, + 107, + 109, + 110, + 111, + 112 + ], + "summary": { + "covered_lines": 8, + "num_statements": 8, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "TestIngredient.test_ingredient_create": { + "executed_lines": [ + 127, + 128, + 129, + 130 + ], + "summary": { + "covered_lines": 4, + "num_statements": 4, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "TestIngredient.test_ingredient_get_price": { + "executed_lines": [ + 135 + ], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "TestIngredient.test_ingredient_get_name": { + "executed_lines": [ + 139 + ], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "TestIngredient.test_ingredient_get_type": { + "executed_lines": [ + 143 + ], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "": { + "executed_lines": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 9, + 12, + 17, + 23, + 27, + 31, + 33, + 38, + 46, + 54, + 57, + 63, + 71, + 78, + 91, + 100, + 101, + 116, + 119, + 125, + 134, + 138, + 142 + ], + "summary": { + "covered_lines": 30, + "num_statements": 30, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + } + }, + "classes": { + "TestBun": { + "executed_lines": [ + 18, + 19, + 20, + 24, + 28 + ], + "summary": { + "covered_lines": 5, + "num_statements": 5, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "TestDatabase": { + "executed_lines": [ + 34, + 35, + 39, + 40, + 41, + 42, + 43, + 47, + 48, + 49, + 50 + ], + "summary": { + "covered_lines": 11, + "num_statements": 11, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "TestBurger": { + "executed_lines": [ + 58, + 59, + 65, + 66, + 67, + 73, + 74, + 75, + 80, + 81, + 83, + 84, + 86, + 87, + 88, + 93, + 94, + 95, + 97, + 103, + 105, + 106, + 107, + 109, + 110, + 111, + 112 + ], + "summary": { + "covered_lines": 27, + "num_statements": 27, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "TestIngredient": { + "executed_lines": [ + 127, + 128, + 129, + 130, + 135, + 139, + 143 + ], + "summary": { + "covered_lines": 7, + "num_statements": 7, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + }, + "": { + "executed_lines": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 9, + 12, + 17, + 23, + 27, + 31, + 33, + 38, + 46, + 54, + 57, + 63, + 71, + 78, + 91, + 100, + 101, + 116, + 119, + 125, + 134, + 138, + 142 + ], + "summary": { + "covered_lines": 30, + "num_statements": 30, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [] + } + } + } + }, + "totals": { + "covered_lines": 188, + "num_statements": 208, + "percent_covered": 90.38461538461539, + "percent_covered_display": "90", + "missing_lines": 20, + "excluded_lines": 0, + "percent_statements_covered": 90.38461538461539, + "percent_statements_covered_display": "90" + } +} \ No newline at end of file diff --git a/__init__.py b/praktikum/__init__.py similarity index 100% rename from __init__.py rename to praktikum/__init__.py diff --git a/bun.py b/praktikum/bun.py similarity index 100% rename from bun.py rename to praktikum/bun.py diff --git a/burger.py b/praktikum/burger.py similarity index 99% rename from burger.py rename to praktikum/burger.py index 2b3b6a88b..b0de7a301 100644 --- a/burger.py +++ b/praktikum/burger.py @@ -1,5 +1,4 @@ from typing import List - from praktikum.bun import Bun from praktikum.ingredient import Ingredient diff --git a/database.py b/praktikum/database.py similarity index 100% rename from database.py rename to praktikum/database.py diff --git a/ingredient.py b/praktikum/ingredient.py similarity index 100% rename from ingredient.py rename to praktikum/ingredient.py diff --git a/ingredient_types.py b/praktikum/ingredient_types.py similarity index 100% rename from ingredient_types.py rename to praktikum/ingredient_types.py diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 000000000..083c3ff5f --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +coverage==7.13.4 +pytest==9.0.2 +pytest-cov==7.0.0 \ No newline at end of file diff --git a/tests.py b/tests.py new file mode 100644 index 000000000..875da1c36 --- /dev/null +++ b/tests.py @@ -0,0 +1,143 @@ +import pytest +from praktikum.bun import Bun +from praktikum.burger import Burger +from praktikum.ingredient import Ingredient +from praktikum.database import Database +from praktikum.ingredient_types import INGREDIENT_TYPE_SAUCE, INGREDIENT_TYPE_FILLING +from unittest.mock import Mock, patch + +class TestBun: + + # Создание булки с параметризацией + @pytest.mark.parametrize("name, price", [ + ("Булка с кунжутом", 850), + ("Бриошь", 930), + ("Цельнозерновая", 750) + ]) + def test_bun_create(self, name, price): + bun = Bun(name, price) + assert bun.get_name() == name + assert bun.get_price() == price + + # Получение названия булки + def test_bun_get_name(self, bun): + assert bun.get_name() == "Черная булка" + + # Получение цены булки + def test_bun_get_price(self, bun): + assert bun.get_price() == 900 + + +class TestDatabase: + + def test_database_init(self, database): + assert len(database.available_buns()) == 3 + assert len(database.available_ingredients()) == 6 + + # Получение списка доступных булок + def test_available_buns(self, database): + buns = database.available_buns() + assert len(buns) == 3 + assert buns[0].get_name() == "black bun" + assert buns[1].get_name() == "white bun" + assert buns[2].get_name() == "red bun" + + # Получение списка доступных ингредиентов + def test_available_ingredients(self, database): + ingredients = database.available_ingredients() + assert len(ingredients) == 6 + assert ingredients[0].get_type() == INGREDIENT_TYPE_SAUCE + assert ingredients[3].get_type() == INGREDIENT_TYPE_FILLING + + + +class TestBurger: + + # Выбор булок + def test_set_buns(self, burger, bun_mock): + burger.set_buns(bun_mock) + assert burger.bun == bun_mock + + + # Добавление ингредиента + def test_add_ingredient(self, burger, ingredient_mock): + + burger.add_ingredient(ingredient_mock) + assert len(burger.ingredients) == 1 + assert burger.ingredients[0] == ingredient_mock + + + # Удаление ингредиента + def test_remove_ingredient(self, burger, ingredient_mock): + + burger.add_ingredient(ingredient_mock) + burger.remove_ingredient(0) + assert len(burger.ingredients) == 0 + + # Перемещение ингредиента + def test_move_ingredient(self, burger): + + ingredient1 = Mock(spec=Ingredient) + ingredient2 = Mock(spec=Ingredient) + + burger.add_ingredient(ingredient1) + burger.add_ingredient(ingredient2) + + burger.move_ingredient(0, 1) + assert burger.ingredients[0] == ingredient2 + assert burger.ingredients[1] == ingredient1 + + # Получение цены бургера + def test_get_burger_price(self, burger, bun_mock, ingredient_mock, ingredient_mock_filling): + + burger.set_buns(bun_mock) + burger.add_ingredient(ingredient_mock) + burger.add_ingredient(ingredient_mock_filling) + # (1000 * 2) + 50 + 750 = 2800 + assert burger.get_price() == 2800 + + # Получение чека + @patch('praktikum.burger.Burger.get_price') + def test_get_receipt(self, mock_get_price, burger, bun_mock, ingredient_mock): + + mock_get_price.return_value = 2050 # (1000 * 2) + 50 = 2050 + # Сборка бургера + burger.set_buns(bun_mock) + burger.add_ingredient(ingredient_mock) + receipt = burger.get_receipt() + # Проверка содержимого чека + assert '(==== Каменная булка ====)' in receipt + assert '= sauce Тестовый соус =' in receipt + assert 'Price: 2050' in receipt + + + +class TestIngredient: + + # Создание ингредиента с параметризацией + @pytest.mark.parametrize("ingredient_type, name, price", [ + (INGREDIENT_TYPE_SAUCE, "Кетчунез", 70), + (INGREDIENT_TYPE_SAUCE, "Сладкий чили", 80), + (INGREDIENT_TYPE_FILLING, "Котлета", 950), + (INGREDIENT_TYPE_FILLING, "Огурчики", 40) + ]) + def test_ingredient_create(self, ingredient_type, name, price): + + ingredient = Ingredient(ingredient_type, name, price) + assert ingredient.get_type() == ingredient_type + assert ingredient.get_name() == name + assert ingredient.get_price() == price + + # Получение цены ингредиента + def test_ingredient_get_price(self, ingredient): + assert ingredient.get_price() == 99 + + # Получение названия ингредиента + def test_ingredient_get_name(self, ingredient): + assert ingredient.get_name() == "Острый соус" + + # Получение типа ингредиента + def test_ingredient_get_type(self, ingredient): + assert ingredient.get_type() == INGREDIENT_TYPE_SAUCE + + From 800a985e9f8c7987692f23c03570434b2567c55f Mon Sep 17 00:00:00 2001 From: Polina Spiridonova Date: Wed, 18 Mar 2026 23:33:41 +0300 Subject: [PATCH 2/5] =?UTF-8?q?=D0=92=D0=BD=D0=B5=D1=81=D0=B5=D0=BD=D1=8B?= =?UTF-8?q?=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20=D1=81=D0=BE=D0=B3=D0=BB=D0=B0=D1=81=D0=BD=D0=BE=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=BC=D0=B5=D1=87=D0=B0=D0=BD=D0=B8=D1=8F=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .coverage | Bin 0 -> 53248 bytes conftest.py | 22 +- coverage.json | 1912 +------------------------------------------------ data.py | 56 ++ tests.py | 145 ++-- 5 files changed, 162 insertions(+), 1973 deletions(-) create mode 100644 .coverage create mode 100644 data.py diff --git a/.coverage b/.coverage new file mode 100644 index 0000000000000000000000000000000000000000..cf5e8dc79cc1c9e04509f03ad936f40d6d74d266 GIT binary patch literal 53248 zcmeI4+lw1j9LHxe$xJ4@$y95N>nc4Ux?SAexV>qspsOud6}(kn6yqd0yE|@XCY?*$ zeJB!d1wlc5RsR4VMSQUjULL#)MHHc+qF^hcBI;8`{GGYv((aZtrIfATA(?aL%=!J! z?|jbhoHJ)8nFsH`#|k)`cRkw-*cNG>B+Jrmj7gHD)3-?9bkiu3O%EuPd*Z7_b!q1L z%ZkRs(y01^WIR^9*O(rCwRqjg(NSA}e<{)a!Ht8wh{^2!O!iQLQ{SCO>s3 zFl$X7cxIh@@xFM+1H0$;?q+-EZog+Yi__Sq0;6qun$0oKJ-}MrWAj#%Gs|gMbu+M> z1r{vwGH19vsa z)no%VsqDaQvqD>T>)Y3yDRR-Gu~g_-`$FDn{3+IzoQkU9xKm72f;`~b5w*Nyy)2Pe z@`L`qCS7k;%`kAI<0>_Nb(VIc&s>t%${RPzhxbK}BJfmeR^WFcdY{vDl2>sZaej5b z5xu0}NklJdHkmsgbr~Ve;>ICw?(H*`6o%=Ej>g<1BUySuy-gTPHn3XLt@Zm_Y}Uoq7HR;KljW9K9ih{hlLC6NaQ-Rx?0}7aW&WJxIlHb6D_pIRINNd zExcl(ysw!)SWS=B6Kd=|FO(K{A!-j*@8~NzPDprZu%ZH@;eRl6=+K zB$97yS*^TbgWQgLgcz5^H`iAQk<#q~r%VKco8K~nMRvOFBAE=I$f@O_s3Frhjt z_UhA*WFnIfk45xt8uZ0i=`&fRbWOgSFHi3`n>3oVOv|G#OJi_612B=XVNzzZ=7vG! zzv3`*Pcip&?Tr<5k5l%PYck4C-TOY*_br-M#kA$`OjFs!qUnoK$e&;}*KKmsiRT8A z*yB@~md_#^PM?)-?dtHCg^q>&6Om2n;H`Ly=44GJ8U2T0w4eaAOHd&00JNY0w4ea zAOHeulE7$2x!Op7;c>${Ss5Qoegkmh%9ozHiYL$sSZN;6A;uqqV#_uSiRS3Pu0VZ!O=dWu>+< zs8GkmN-gy0{W?_W9+ec7&t3t&5{KSJVG)RGu-xLp{yTD{YUEs0k&?MADbdbeiQrK) zeNHNFRut*b*=wkUjwnAfT=~_i<(tD--#m~;8lS4HKfB*=900@8p2!H?xfB*=9fF#|dgz}&(xz6HREakQ; z_P~Pa`d{CoEDbD_tpD@3W!uWYLLC#k>woR8Y`Z*!f)&>P>aJ{i;KGl#n%V*nx6GP-v5Uo2LwO>1V8`;KmY_l00ck)1V8`; zE@}b_{bZmhp8w0nKN5YgfdB}A00@8p2!H?xfB*=900@8p2wa2&6s4$(=l{C#qGbGK z{A7GPE43vyQ1ulV Date: Wed, 18 Mar 2026 23:36:47 +0300 Subject: [PATCH 3/5] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=BE?= =?UTF-8?q?=20=D0=BB=D0=B8=D1=88=D0=BD=D0=B5=D0=B5=20=D0=B8=D0=B7=20TestDa?= =?UTF-8?q?tabase?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .coverage | Bin 53248 -> 53248 bytes tests.py | 22 ---------------------- 2 files changed, 22 deletions(-) diff --git a/.coverage b/.coverage index cf5e8dc79cc1c9e04509f03ad936f40d6d74d266..f4a323e364c7e8ca1547b743a58e9654e9b3ba3c 100644 GIT binary patch delta 72 zcmV-O0Jr~upaX!Q1F!~w6pH{4^bh6_-VfCe$Pc^^vJa{ci?b0BaStCI2?PNNJPG~* eAn&{*=lnbafbhuablOgrbw{qb<{GoAk5)j~PaTf{ delta 69 zcmV-L0J{HxpaX!Q1F!~w6pjE7^bh6_-VfCe$Pc^^vJa{cj Date: Thu, 19 Mar 2026 00:00:06 +0300 Subject: [PATCH 4/5] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=BE=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=BD=D1=8B=D1=85=20=D0=B2=D0=BC=D0=B5=D1=81=D1=82?= =?UTF-8?q?=D0=BE=20=D0=BF=D1=80=D1=8F=D0=BC=D1=8B=D1=85=20=D0=B7=D0=BD?= =?UTF-8?q?=D0=B0=D1=87=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=B2=20TestBurger:test?= =?UTF-8?q?=5Fget=5Fburger=5Fprice=20=D0=B8=20TestBurger:test=5Fget=5Frece?= =?UTF-8?q?ipt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tests.py b/tests.py index dc63ff63e..0cc25eea6 100644 --- a/tests.py +++ b/tests.py @@ -114,14 +114,16 @@ def test_get_burger_price(self, burger, bun_mock, ingredient_mock, ingredient_mo burger.set_buns(bun_mock) burger.add_ingredient(ingredient_mock) burger.add_ingredient(ingredient_mock_filling) - # (1000 * 2) + 50 + 750 = 2800 - assert burger.get_price() == 2800 + # рассчитываем цену через переменные + expected_price = (STONE_BUN['price'] * 2) + TEST_SAUCE['price'] + TEST_FILLING['price'] + assert burger.get_price() == expected_price # Получение чека @patch('praktikum.burger.Burger.get_price') def test_get_receipt(self, mock_get_price, burger, bun_mock, ingredient_mock): - - mock_get_price.return_value = 2050 # (1000 * 2) + 50 = 2050 + # рассчитываем цену через переменные + expected_price = (STONE_BUN['price'] * 2) + TEST_SAUCE['price'] + mock_get_price.return_value = expected_price # Сборка бургера burger.set_buns(bun_mock) burger.add_ingredient(ingredient_mock) @@ -129,7 +131,7 @@ def test_get_receipt(self, mock_get_price, burger, bun_mock, ingredient_mock): # Проверка содержимого чека assert f'(==== {STONE_BUN['name']} ====)' in receipt assert f'= sauce {TEST_SAUCE['name']} =' in receipt - assert 'Price: 2050' in receipt + assert f'Price: {expected_price}' in receipt From 77f74aa93fa50d0452a14c802c80c70b9aae2438 Mon Sep 17 00:00:00 2001 From: Polina Spiridonova Date: Thu, 19 Mar 2026 00:04:17 +0300 Subject: [PATCH 5/5] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=BE?= =?UTF-8?q?=20=D0=BB=D0=B8=D1=88=D0=BD=D0=B5=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/tests.py b/tests.py index 0cc25eea6..f7530bc3d 100644 --- a/tests.py +++ b/tests.py @@ -1,16 +1,11 @@ import pytest from praktikum.bun import Bun -from praktikum.burger import Burger from praktikum.ingredient import Ingredient -from praktikum.database import Database -from praktikum.ingredient_types import INGREDIENT_TYPE_SAUCE, INGREDIENT_TYPE_FILLING from unittest.mock import Mock, patch from data import ( - SPICY_SAUCE, TEST_FILLING, TEST_SAUCE, STONE_BUN, - BLACK_BUN, TEST_BUN_1, TEST_BUN_2, TEST_BUN_3,