From 6c669c9377387040f56c3459f23285d17caa7374 Mon Sep 17 00:00:00 2001 From: Softr75 Date: Sun, 24 May 2026 07:34:49 +0600 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D0=BE=D0=B5=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .coverage | Bin 0 -> 53248 bytes .gitignore | 27 ++++++++++ conftest.py | 22 ++++++++ __init__.py => praktikum/__init__.py | 0 bun.py => praktikum/bun.py | 2 +- burger.py => praktikum/burger.py | 0 database.py => praktikum/database.py | 0 ingredient.py => praktikum/ingredient.py | 0 .../ingredient_types.py | 0 praktikum.py => praktikum/praktikum.py | 0 requirement.txt | Bin 0 -> 66 bytes tests/__init__.py | 0 tests/test_bun.py | 8 +++ tests/test_burger.py | 48 ++++++++++++++++++ tests/test_database.py | 12 +++++ tests/test_ingredient.py | 18 +++++++ 16 files changed, 136 insertions(+), 1 deletion(-) create mode 100644 .coverage create mode 100644 .gitignore create mode 100644 conftest.py rename __init__.py => praktikum/__init__.py (100%) rename bun.py => praktikum/bun.py (93%) rename burger.py => praktikum/burger.py (100%) rename database.py => praktikum/database.py (100%) rename ingredient.py => praktikum/ingredient.py (100%) rename ingredient_types.py => praktikum/ingredient_types.py (100%) rename praktikum.py => praktikum/praktikum.py (100%) create mode 100644 requirement.txt create mode 100644 tests/__init__.py create mode 100644 tests/test_bun.py create mode 100644 tests/test_burger.py create mode 100644 tests/test_database.py create mode 100644 tests/test_ingredient.py diff --git a/.coverage b/.coverage new file mode 100644 index 0000000000000000000000000000000000000000..4b0f707279d3029b115aa807df656172a653e025 GIT binary patch literal 53248 zcmeI)&2QUe90zbacH$;Y;zBi|5>0(BEUVUb3mkwA3CdQ%UZk;6xKQCa$zrZdbSy`XQU}fmZg^%lO!oizXkeD7L8WaWP_gNzV%_NS!wa&HwFDo zDWCaJ(%&we)fe)g77k2)o42zcOn#=B**YD-0s#m>00RGSfzG+SR+^cSue=kOwI&Zd zv(CNfv2gtS^3uvOTUmPf%rcAiv4c5A%fbR%VxD`MwYbODtR`oc)3EAhU^(k7*x3L+hLo0XFfb3zFNSygJ=f@;nun%&R_@Q zNP4qA=5+}zc7b6RP7TE51^GMQeTekKP>Lpyp!Ik`rG>aN!ixvzPq zQ{UkJJTto`th>mvTNVhU3mNQ3z@QPfcb@&riz|wMxG2 zUux3pEyHXFZn$kw4}cU-1tPw=|gR8BD0hSR%^Po!L}B*7@t!I zp|K!2ZLRIpMOX1f8S3s9_sn&^7$1#>g@@gcsOeO*nbPv?u%^>(0!FpFn(NGDv{Jb& zU&)5eD6XyeNgHTFNlorDj3$R{Zu)I68A$FoNG2(Iqh!)Y;v-a?1uaurDi148e4bH_ zS0*}|s+IQblRHt55aW{gO%D`8?CEuZyC#AM&wk4cHrTy+7rQCrm2{?bY~Qeqi!2yb z@tC>#Rw~T$wV6=gra@o)Dg#*-dwN+u&36{I%qEQ{Ez|O-%hDJe%>YcC*f8m2v*xyg zu>Fe7uz8BPrPP(oIrPU%w@y(?xCG(IXutR((oi%djR+iXPLT~tb6#LFA}o^a7@bixdHVA-6B zQ^L%I4ePS$v%1IWAkC$773F@-K-88|6_4UBc|yFD>&(hp>Chp$(~di1G|m`4P3pFp zWINtW4K$Lw4))s1SsHNZ)lPpq5q5nXVl%pe7~G;7tVIgRS@CO~+?=?f)APcN=`Q<+&GmJ@8k3`U)H; zFrHgoG5t-WN(ao%z}jrvy*2t*`*RtJRT(`NeZdWVvxLRzO2JNx`xNqInnIRF4=KJt zpl149}y49AOHafKmY;|fB*y_009U<00LtoApZX!_y1#3S;!^?AOHafKmY;| QfB*y_009U str: return self.name def get_price(self) -> float: - return self.price + return self.price \ No newline at end of file diff --git a/burger.py b/praktikum/burger.py similarity index 100% rename from burger.py rename to praktikum/burger.py 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/praktikum.py b/praktikum/praktikum.py similarity index 100% rename from praktikum.py rename to praktikum/praktikum.py diff --git a/requirement.txt b/requirement.txt new file mode 100644 index 0000000000000000000000000000000000000000..d7fbe0faf8316683da5312e2848b66d82de78392 GIT binary patch literal 66 zcmezWuYjSFp@boop%_To0-+^?9)kf88#3@Ra4{gu>M|rV*o literal 0 HcmV?d00001 diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/test_bun.py b/tests/test_bun.py new file mode 100644 index 000000000..5185759ed --- /dev/null +++ b/tests/test_bun.py @@ -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 \ No newline at end of file diff --git a/tests/test_burger.py b/tests/test_burger.py new file mode 100644 index 000000000..5c27b208e --- /dev/null +++ b/tests/test_burger.py @@ -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 \ No newline at end of file diff --git a/tests/test_database.py b/tests/test_database.py new file mode 100644 index 000000000..6b008ed2a --- /dev/null +++ b/tests/test_database.py @@ -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 \ No newline at end of file diff --git a/tests/test_ingredient.py b/tests/test_ingredient.py new file mode 100644 index 000000000..b1cec59b6 --- /dev/null +++ b/tests/test_ingredient.py @@ -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 \ No newline at end of file