From 397b81c98f4e994a911adde1b34f75bbc60de294 Mon Sep 17 00:00:00 2001 From: Karlen Date: Fri, 26 Dec 2025 15:55:38 +0700 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=8E=D0=BD=D0=B8=D1=82-=D1=82=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D1=8B=20=D0=B4=D0=BB=D1=8F=20=D0=BF=D1=80=D0=B8=D0=BB?= =?UTF-8?q?=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B1=D1=83=D1=80=D0=B3?= =?UTF-8?q?=D0=B5=D1=80=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 0 -> 6148 bytes .coverage | Bin 0 -> 53248 bytes .gitignore | 15 ++++ __pycache__/__init__.cpython-314.pyc | Bin 0 -> 148 bytes __pycache__/bun.cpython-314.pyc | Bin 0 -> 1563 bytes __pycache__/burger.cpython-314.pyc | Bin 0 -> 4127 bytes __pycache__/database.cpython-314.pyc | Bin 0 -> 2771 bytes __pycache__/ingredient.cpython-314.pyc | Bin 0 -> 2012 bytes __pycache__/ingredient_types.cpython-314.pyc | Bin 0 -> 376 bytes burger.py | 4 +- database.py | 6 +- praktikum.py | 8 +- requirements.txt | 2 + .../test_bun.cpython-314-pytest-9.0.2.pyc | Bin 0 -> 2654 bytes .../test_burger.cpython-314-pytest-9.0.2.pyc | Bin 0 -> 8723 bytes ...test_database.cpython-314-pytest-9.0.2.pyc | Bin 0 -> 6237 bytes ...st_ingredient.cpython-314-pytest-9.0.2.pyc | Bin 0 -> 3683 bytes tests/test_bun.py | 17 ++++ tests/test_burger.py | 84 ++++++++++++++++++ tests/test_database.py | 21 +++++ tests/test_ingredient.py | 18 ++++ 21 files changed, 166 insertions(+), 9 deletions(-) create mode 100644 .DS_Store create mode 100644 .coverage create mode 100644 .gitignore create mode 100644 __pycache__/__init__.cpython-314.pyc create mode 100644 __pycache__/bun.cpython-314.pyc create mode 100644 __pycache__/burger.cpython-314.pyc create mode 100644 __pycache__/database.cpython-314.pyc create mode 100644 __pycache__/ingredient.cpython-314.pyc create mode 100644 __pycache__/ingredient_types.cpython-314.pyc create mode 100644 requirements.txt create mode 100644 tests/__pycache__/test_bun.cpython-314-pytest-9.0.2.pyc create mode 100644 tests/__pycache__/test_burger.cpython-314-pytest-9.0.2.pyc create mode 100644 tests/__pycache__/test_database.cpython-314-pytest-9.0.2.pyc create mode 100644 tests/__pycache__/test_ingredient.cpython-314-pytest-9.0.2.pyc 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/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..d1109c78f3e5a2ca262076abcb72da4dd5a503d7 GIT binary patch literal 6148 zcmeHLziSjh6#nLN%EdDf5W&J?v6h2W+6bFtQ&4=DfQFYyzm!1*@0X z1We-MOIEQx*N95S81}dJI{9e4lo>ms0#Si~Q2}{(t7xE)0cQUD`~1X>jq)sO5A!zr zYA>#T{Pg7MhiyOJT^S$mJ9|SVAr%{}JH`St^e|=HLI;oN`{?;Isk~gB?auA^>dkKp zGq)AvkMi@`{u#rYKkm!?>zr|mx*dvk`dZ)5-C^FbO3Aj`q&L266A~_>jX61?+_$CN zb)7rm)9GOnVyGJ>Mjc&hIHR}eQ}P0J)M<&eq3@#48a?s{Y!5j`fLWQ8m{)?#7TF6v zTY0XbQRL)sHMz{(3Fmu2-hk~Kqag3B#9PNMcCd{M_lOO$y1x2ryCud2Rxqn=>aH>M z?8_TwI#G8`-G24p?AWX+FXMa-g)`hWqu#$}0lsTTTHPbR`s~1sxwY@y`uh3t&v(so z-PIe4dv)LGx>CDrJhR1Wb%U{u3Pc5>0>2cH{UMdh1{#8@a@*f?~XuLr*ZV zm|83hGD1^^N;FhuKQWY{vp=zUsl~#ep+o7)9LH8x_6tSn>g-Q+I#g;fwo!qofUm%s z`MD|Q|IY8f|9w*Y6%~jI{8tL7YPOd(c}w1c8DbL^_^S&101b5nQ~&?~ literal 0 HcmV?d00001 diff --git a/.coverage b/.coverage new file mode 100644 index 0000000000000000000000000000000000000000..7d0b18fe3dd17d83b9f412465a3de29b61e77c98 GIT binary patch literal 53248 zcmeI4O^n;d6~{?Y5=HGwvyI^j+l8@%0_}R?-IWzL3F@RxHn9&u1LVu?rD$bJn%!kr zBDExCdyy87k{|{OOS`P1m&tq|`LcqIZqn>1I-* zn4Zv4&!i7ZTH3}7|Eh`aX!GS4H1Yk~qhfvj=e4iSeK0?;emwV*XofDHsd00cnb z|C_-0@p-ecxTrt#qtNd3Rp{GY<;VNlLrw)^eea?i zDqn6neI*^Y=XCARakpi-qteo&K=pW{qdc1GxZp-4&#AW4BdJhrlZv753~Ya2?yCK@ zs6bL%s4j(Z1}Ra_w#y~t@kD%8`f5x0%I&Hkw&J+cTdl4>d%0>hjvUdisK_VV@6u~- z#v96*y7KTADe8KDkFD?cw%grN!J4!u9(Fyl^HLal>wAM{=*hn0MsB)+6FQzN)g{#( zg{pT`2iF){x)HprH>B%4J9IvlOzO(enF`-TGAW)2Z;^4Xmtvg?a@8ap+3b!69YX$t z(O}4pLlSYtp?8qvL9(HjIGej|Zqk-he`lIAMb0f6OO0G-Z=@!Tzb2=WYmpnSwQb=Rr_Wn$dlY)nd7B!)-J;$6b6=>Kjpb$i%3c&GjHlgk!eElH zW`bsteL(2&^@HPvd&z8&a4+ijrMDGz8J3oD<4`nb`%E*1Vf)yJZH?S6ca?yB=z15FZ*QxOf+hx zj2)`b87Rp`B4eV!x@ZTo>nplQbLr}e@kwF8t<`Svo>$2g{wOzI*3HI=6Z&|RbjEm` zX$Lf^5A4+J#>=BL;L@j^Y@9H=3=TexYv92xZoy7WAuW}B)~T-Y0$&&Z z(ddN@1V8`;KmY_l00ck)1V8`;KmY_l;PxY6=mp*6^?yP9UK7`7hYbWk00ck)1V8`; zKmY_l00ck)1VG?W5|}R-$3*%KkCO|!v9y?c2jHHK)~St?Rr0DJu4>|{_{X7i5JrOl z2!H?xfB*=900@8p2!H?xfB*La{bTs zU)H^PtM=F0Ym|)*1V8`;KmY_l00ck)1V8`;K;Tm%aMzrn?KQt0&`;f)ySCp~Zu5)^ zc0+I2JmU=e^!G0Dq1|c@eS0@_c1HvHnfuqOhUVoHYquTO3EORwdeACrV=JFnsDdzP z@}A_k=`SE0<%Xo=zKWq;&ZlB3*ADlGDqy?K+;;Py0d(v@k<*7Tr>%;oh`kl40ct@P8|EhNFQwnmZ0Ra#I0T2KI5C8!X009sH0T9r% zyN$h^YsKvPf9@{B%PE#w|5qO>j;)+xnU&(qirD&waXF`osoZ4!U&(KGX7z4v7RRNW zm1gYDXei%f1UVH6EdXQ*N?;FWz4q>p6uo)=uP&lZMJE9{jN?d zi~s+_AOr#+00JNY0w4eaAOHd&00JNY0=G2*gT6LUXG2!H?xfB*=9 z00@8p2!H?xfB*=5W&|qLqHf(`y}xZ%EKZf*|HZuv6-s^C`1q$MUislWuYT`>cg!@4 zmUYL+=Z$iiF4ZeW^_`C?hNRqQgmh(qeIb%4ut~WEwHNm{9jwhT_p;F z00@8p2!H?xfB*=900@8p2!H?x96|#8{2%N8L)dUI83aH81V8`;KmY_l00ck)1V8`; kZh-)v|K9>E6a@hg009sH0T2KI5C8!X009sHfkR5*f8AmqH2?qr literal 0 HcmV?d00001 diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..b96baffa8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +__pycache__/ +*.py[cod] +*.pyo +*.pyd +venv/ +.env/ +.venv/ +.pytest_cache/ +.coverage +coverage.xml +htmlcov/ +.vscode/ +.idea/ +.DS_Store +Thumbs.db \ No newline at end of file diff --git a/__pycache__/__init__.cpython-314.pyc b/__pycache__/__init__.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d4d908e2d7d534795b6fb434d7a5a4248186e0d9 GIT binary patch literal 148 zcmdPq)b-GC}lX5CH>>P{wCAAftgHh(Vb_lhJP_LlF~@{~08C%TPbGIJKx) zKRdA~CpAysCAB!aB)>r4C9@zWKNm{H8|uf$XXa&=#K-FuRNmsS$<0qG%}KQ@Vg;H2 SvZENp_{7Y}$XLV-WB~xX>LF?X literal 0 HcmV?d00001 diff --git a/__pycache__/bun.cpython-314.pyc b/__pycache__/bun.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..36d1d1285832e96daa4b6627e0ee57a356bd4919 GIT binary patch literal 1563 zcmb7E&u<$=6n?X7J8P3)r44Ca1cpcv7AO`1Bn}lqs7DmRR-_WB9c`Trth(6^v*Sa0 zvM6e)R8et^#6RF$C)eDj`PpP#D{ z)}N0*jP41d-`ND=HLS+*IqwUikje6^du(fT9{Ro1#4s5neoSHtYKPIp>Yqn$Y29x3@| z>sBXO+u6-$r3{iJ)qxJB%ooAu+B7nQoY`fFr(GJ7Q@(u0V(;21tKO2e25?iGFFIaa z32blh5;k4BzL<;lwx$*U{OdtRbDX$s}R zY&wd^MLh>GV%%1y<`|uau$~LpSjt5C(iuVQtyndw2?2I78q0U2Pe00pq=b@IiXDlyc%hodDW#Rmz-3PnIyEv&~{1VT^i&`!!sj~WCHkgrY zij6wcP~UsUs!1h?vg;Yy;CEL{+%y+ezP+8Ce2$ysAJf({VdKt&JI1?YYf#T4$2$H{ z&|l0V`l}}8cDmV#d5K_nG6Cy^vu@t`K7A%!~SfAnbv^0j1w> AZ~y=R literal 0 HcmV?d00001 diff --git a/__pycache__/burger.cpython-314.pyc b/__pycache__/burger.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cda793c11aae33ed9ce1b37d99ec8ac13ad8f20d GIT binary patch literal 4127 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 literal 0 HcmV?d00001 diff --git a/burger.py b/burger.py index 2b3b6a88b..3f71aaa29 100644 --- a/burger.py +++ b/burger.py @@ -1,7 +1,7 @@ from typing import List -from praktikum.bun import Bun -from praktikum.ingredient import Ingredient +from bun import Bun +from ingredient import Ingredient class Burger: diff --git a/database.py b/database.py index 4c75baf71..84d3685d0 100644 --- a/database.py +++ b/database.py @@ -1,8 +1,8 @@ from typing import List -from praktikum.bun import Bun -from praktikum.ingredient import Ingredient -from praktikum.ingredient_types import INGREDIENT_TYPE_SAUCE, INGREDIENT_TYPE_FILLING +from bun import Bun +from ingredient import Ingredient +from ingredient_types import INGREDIENT_TYPE_SAUCE, INGREDIENT_TYPE_FILLING class Database: diff --git a/praktikum.py b/praktikum.py index ec522fa6d..88b77abd1 100644 --- a/praktikum.py +++ b/praktikum.py @@ -1,9 +1,9 @@ from typing import List -from praktikum.bun import Bun -from praktikum.burger import Burger -from praktikum.database import Database -from praktikum.ingredient import Ingredient +from bun import Bun +from burger import Burger +from database import Database +from ingredient import Ingredient def main(): diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 000000000..cffeec658 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +pytest +pytest-cov \ No newline at end of file diff --git a/tests/__pycache__/test_bun.cpython-314-pytest-9.0.2.pyc b/tests/__pycache__/test_bun.cpython-314-pytest-9.0.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..77b19399db46a7d46d21144680e6ea3de6410c79 GIT binary patch literal 2654 zcmd@WO>Y}TbY^$G{@BE7T2KQi#8#kmMP#?NDQO$0EhNH~pjfNcxdc`ld*WDG?`~$- zDlt?F0*O>TaLr%fXK>@#l&YylLU8S^)Ep2e-t3pRAp%9HTo^g?zTdp}=IxujogdF3 zSgG$n>@H%2TAYYhDny1~0J4ofMH;@2JnTcEF7}0KRF}NebRdyE86?8>bUou`rqL&I z<9Os~1RF1p@Cehy64Fv1=t+zty67E3cr_c)c z4OT;run{aGO=+eoSQ}fuS`n(Du7)*XB@<~i{CY=J07oZZ1V-nz11F6=ug$3A2H|H4sw>u(rn`H99c_i znWkLE&vDZ$6H)aNSs&8Ta1-e$stB%QEqfU|;$=*ipxa)GJdNOiZo~ho+s2o#{qMUi z_X4^NNB4QeZj0@p+j9SHw`p0Jmia$~T8)X$)>$U5_AQQ`=UbI;7nsDS=OAymE}>rG z%`?u{oa%DX+zpoUXR3-RpIs^*e89z3)y;h#B88f7aXw-J60**!ZmB~&oqNySIiu$8 z6l#I;1=R&t^`pD;gZZm3h4T5$GSO))ch%YQi0kPFWfOYKFio8jhqmmVV^G4zK&-F! zyQbH*Tqc_~Xt-=rch~K{+4fcSj%lwNrXM`Z>aMXyxCfTM=2xj}TT7JMl%3GmY}zwC zoqXn)hGlplVObtXP`C``v3O_q2^|>TbNfPe_MBw_}ByrK@569`#1%I)* z@-4VDx4dCclUU_N;%<1hQ(o*krrj%qP(N4Z#c=%{^0rFO7Mt?x1B4z`O*gD|5H*Dd z2l2<=y#!CnHu~*2Qt~_PA9Js6zyFJp|91ZF{C%moGk6m?wScNr8NOu+rua2=y)TQ(oD6v=cps!0o13|BqD7j6+5zEFbmJWH8zu!y_ zO#JQ(z7wfu&<&=*rvP83N4o>!U-);3z77WT6t~LE_w07xBnwmplK*4jUV`nZh%x>d yp|83{?K+KAV(+NWkmPdo#YetM`#?@ms z5Frgxq$S!zR@y@>?PZl4QX(bFUyxjKov{ax)nXM6T=o`0F5!}VUv+nNO}mY46tsJw zG*exVud1ths(ml@P@H6#1wW z4}Xuhx)GOka=kEr53c^7tk6Z3HjF0(GG6$;{sWAxEX~T;2*a3hk&4nR*0aFNslC(TJU{);tSCYD<*(OVFCTgYZ zYp zJKD8b()LwscOAy1c!e3c%X_T*C`9qShk5YdVvqCS?O-0hr1uo8aVr#w;#UGGl9U@t zeY2gGgfQzvR+)W;r{uF{ZC&rmO7NUak19b})sgQPKw9?}9}MaKJ8V5;W(1=#-Fs&x z|0bHzG?kWO$4(R^-S@l)kBMFDP5%5c~x(sYH5Y$)AuvE6;%&vPytOfipyCKUno8(sah$Wp?XVt zK9kF(samA-g{5MKLR+W?>1?i)&13n8M)kA45 z^O=f0=+TR8V%b9eGNlEox28WU(4|Z%t^TT*%j7d9sEPY&0Ef(m62W^JPh(gYGNVSu zXgw}wPHXsM##qqLC2zrl)ROlyG^gg1msIUusZdN_$`*5lrI>k54<~W98jE3KNSH+N zf!@rX0e>_-(5(-?+8-e*OV68Izx-wS%JXpa%j4y#&EEd<)ECzuU$2oPFG%={n~!gP zHB}=WFCs0!JNw(S71FiZT8(toiTPP4T~E&P98Wx%;K?3R+0ZA3UnW_eG@1l-{Ra0CYsg;&WET<%SI5Kdcw7_=nZFe(7?fCGp-fYgG#07Uyv z9H!R2B?(?x4g?2C>~^l`wc8m$REPivSIED^*tUc9PGjTkU~Guro#Z*JcL~IgtS2b+ z?7j_b2gDHrh`J}6r?_tPa5le4)rG8@FHsz>K>}Q^G=dTS@Bl*E2Uj5BC;||$7t7`u z0Reah6d_?k5jdH!JJrIE;!Oe(qnU+;v|X)7?6gMl7pJWl;U-FPx)kR}VXu^E2S&Ij zJT-ZB6blYxgu4Rm!U%R_N#GGZ0(rgFU~9vj=?SRWhtf|Wvgy+D(bsL|Pk|_P(pe>) zt0!yZ*o)4ddgoxZbFe}NE0Bl`)`|I9CxeI;yTC{bWozyd(A8=iZwNwGZiC%}*N6#_ zqA?ilJbZcJX!&YyXps|gO3LFl#R8xPHvvbO<4c<9UZ##D3Nh4xe)a)1u6m)30Cx=X z=etJ?@^(LV)KJvj8EYteU$=!!Tz=!v7fL`D;LK@@Ge*ffv4$RpJL@e}T`JsH1?KD) zGZcT4Ei7qcEZN%WDG)|NX@7;tiIdGk{i|K&D>c%_z|vI(UE*go((|JGXuUgG?M_xm zvI2=nvQEs;I!Pi#>;fY#l&!f-Kv%0N-VlVW+y=V`uMra<^%k&P*b`V>Oh3=<0}0P= zU^6F=nLyeWHzO%I;aQ$a5oYk+vR<3Te=u{(e%)NmM9^=7DIXYoq1$8cUBBTks5L^< z;Il{QuHW!>hJGXL^zQOr%j5w~Xs5o3CF{^P{EAQUr~D2BEHJx!eIsD?Y+bmd<4dd(d4cZJsmd3G-?Iq|AwhcB8HkhDs7!=s| zjtqzgnL?yD*|$m$H{?c`@*!GEV@xLzEu;xC^Rb3MlVL8!VupfpkU_;c#tD$?gRk}{ zh-{>^wtqcQzV_U>Y#usZ=^VGwa;QoUtq!kdY9t1hP(9LJjdWMYcONj}n+6og?Cebc_eH`Ndr_aa@H*+H?&)Yps zF0H(CS5n@$x7w9|3TNsFDX!=*LYj-U9$CyqEC^R)s&wh@N)|=i{CjsO0MRR z5>5pGfsxxO0fFdQ;`+&t%ID>6F!0=s9ga0Hxokt#U6vb0ihoC0zXh`-Y4A)1l>lrc zK?g2Fd+=9Ux+J7M85PiATiS*J0>d8~( zYjuJgt&suOLebr{$qmI*Al{f`06tue9IlZ5O62f5lDPldRu)ww{dHn~*0CBWY?l~m z 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 GvHuO-KeV_2 literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_ingredient.cpython-314-pytest-9.0.2.pyc b/tests/__pycache__/test_ingredient.cpython-314-pytest-9.0.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6c44082b8a1f7c4dd99c01b02714e91ebead1b47 GIT binary patch literal 3683 zcmd^CO-~y~7@qy`dc6w<(o(3P*iKYx6N({rQfNxsD0XAF6r4>kssyYyW&sO-EVFC1 zP(`9@rS>P}Rv*(_{z7j(+JFF!R3*2nH(Gk?sWbZ>idvBydTf|&O0;DGULnP zP66QO$De1)qci{|qBu{`7ET^uVFxS&iOK_mGJ875H0TJ(u|^GP<-1=Lvhtl9^Eb1o@3i@o{LBot zZ4Z{+XxZ4()X`{7sp3|H<&wG`TCW>XU1^k5#FZLGMKwx{T?gqz{73YYb-ZXhV38t5 z@+?qAI&C90rpOfRiCA8%-OR+?No~#-!DJ4A&DD2oNS0db1z->?vQA8ab0n{i0jZ2BPJwK<$mA+GP;s1{N z9M>f=z8Rg3XPt2*_J6Sf7aNec7cghwRS^I5w}xJHb0uIsG~%g|1T?d!2$s%(mA(v?HBj8}(dl3oqP$<=G~@0Jc%iex8$U zZX9Nt@Y31#hQl$hKgBlsx!BgVAieTz6JG$^=x1b`8;98@zFf9RA$;_A|4mO%BSzaA zM}l{H6T=nKq)BrPb$KrHVBZcax~@Va`gUB~noQ^fH93n|a@?bUdE6%`7{nY-P}{c% zD4o!SuWcbZZN^=3Ojxi@;|YCiO*PChg!}P?a6dY2fv+X>XG=v&IxAJ~{8gFr`gg7l zNG>FZcM3V~X9)FYRaN=1gM221s-ra%>SV7Gj)QLY%}nvS?i9V2wqFYD{| zMrFl>%4?PSJ*6U>>lu=DWmP2^Q22(q?B#kb3t=6i*W}eYtSW}Aex+5Enqpv&RfrWy zO0sq%1Uqq&u!}U^qzRFlMN*2jl@op?e`X|5RyIQYmbF76Z;Z)VzJ{E)TZeHMFgah}DJNjbJ{myJ8x z0YML0o--pcpqcSU`ZU*!1srS^7io);7CX`sBYR>D3(fhqIC99^?>_OwT-6mwIW}aM z9dWb+GmqstGZF)u^ZrPm=9;m9aVL1cL81%s&bI=|RSdl;TVL0h#aqnyF{pkC%Z7?V zt_cNg8zh%L#91LG>8-D|+eb3;Q$>g57X~Dke#BN4xPe6cvEu(71}tx@CjWi{@Djnq z2!{WlT3=~Y)DPjiSS5FP{Wfln8H%DF1MnUAw)0mIdkj81<^auqKk&`KA=Tfe`j6O) tPeMaY@!_2oKXDX_HscR(w)pYm02AO&0vt{M5e`t7Pr9)5Cy~q{{{fiCg%SV& literal 0 HcmV?d00001 diff --git a/tests/test_bun.py b/tests/test_bun.py new file mode 100644 index 000000000..7e5ccdf3c --- /dev/null +++ b/tests/test_bun.py @@ -0,0 +1,17 @@ +import pytest +from bun import Bun + + +@pytest.mark.parametrize( + "name, price", + [ + ("black bun", 100), + ("white bun", 200), + ("gluten free", 300), + ] +) +def test_bun_get_name_and_price(name, price): + bun = Bun(name, price) + + assert bun.get_name() == name + assert bun.get_price() == price \ No newline at end of file diff --git a/tests/test_burger.py b/tests/test_burger.py new file mode 100644 index 000000000..fe42adc84 --- /dev/null +++ b/tests/test_burger.py @@ -0,0 +1,84 @@ +from unittest.mock import Mock +from burger import Burger + + +def test_set_buns(): + burger = Burger() + bun = Mock() + bun.get_price.return_value = 100 + + burger.set_buns(bun) + + assert burger.bun == bun + + +def test_add_ingredient(): + burger = Burger() + ingredient = Mock() + + burger.add_ingredient(ingredient) + + assert ingredient in burger.ingredients + + +def test_remove_ingredient(): + burger = Burger() + ingredient = Mock() + burger.ingredients = [ingredient] + + burger.remove_ingredient(0) + + assert ingredient not in burger.ingredients + + +def test_move_ingredient(): + burger = Burger() + ingredient_1 = Mock() + ingredient_2 = Mock() + burger.ingredients = [ingredient_1, ingredient_2] + + burger.move_ingredient(0, 1) + + assert burger.ingredients == [ingredient_2, ingredient_1] + + + +def test_get_price(): + burger = Burger() + + bun = Mock() + bun.get_price.return_value = 100 + + ingredient_1 = Mock() + ingredient_1.get_price.return_value = 50 + + ingredient_2 = Mock() + ingredient_2.get_price.return_value = 70 + + burger.set_buns(bun) + burger.add_ingredient(ingredient_1) + burger.add_ingredient(ingredient_2) + + assert burger.get_price() == 320 + + +def test_get_receipt(): + burger = Burger() + + bun = Mock() + bun.get_name.return_value = "black bun" + bun.get_price.return_value = 100 + + ingredient = Mock() + ingredient.get_type.return_value = "SAUCE" + ingredient.get_name.return_value = "hot sauce" + ingredient.get_price.return_value = 50 + + burger.set_buns(bun) + burger.add_ingredient(ingredient) + + receipt = burger.get_receipt() + + assert "black bun" in receipt + assert "hot sauce" in receipt + assert "Price: 250" 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..7ff7beffc --- /dev/null +++ b/tests/test_database.py @@ -0,0 +1,21 @@ +from database import Database +from bun import Bun +from ingredient import Ingredient + + +def test_database_available_buns(): + database = Database() + buns = database.available_buns() + + assert isinstance(buns, list) + assert all(isinstance(bun, Bun) for bun in buns) + assert len(buns) > 0 + + +def test_database_available_ingredients(): + database = Database() + ingredients = database.available_ingredients() + + assert isinstance(ingredients, list) + assert all(isinstance(ingredient, Ingredient) for ingredient in ingredients) + assert len(ingredients) > 0 \ No newline at end of file diff --git a/tests/test_ingredient.py b/tests/test_ingredient.py new file mode 100644 index 000000000..39b4e44b5 --- /dev/null +++ b/tests/test_ingredient.py @@ -0,0 +1,18 @@ +import pytest +from ingredient import Ingredient +from ingredient_types import INGREDIENT_TYPE_SAUCE, INGREDIENT_TYPE_FILLING + + +@pytest.mark.parametrize( + "ingredient_type, name, price", + [ + (INGREDIENT_TYPE_SAUCE, "hot sauce", 100), + (INGREDIENT_TYPE_FILLING, "cutlet", 200), + ] +) +def test_ingredient_getters(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 \ No newline at end of file From 2b55406f10e8d166f72be4bc811215454090eab9 Mon Sep 17 00:00:00 2001 From: Karlen Date: Mon, 29 Dec 2025 14:14:10 +0700 Subject: [PATCH 2/5] =?UTF-8?q?=D0=A0=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=82=D0=B5=D1=81=D1=82=D1=8B=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=BE=D0=B2=20Bun?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test_bun.cpython-314-pytest-9.0.2.pyc | Bin 2654 -> 0 bytes .../test_burger.cpython-314-pytest-9.0.2.pyc | Bin 8723 -> 0 bytes ...test_database.cpython-314-pytest-9.0.2.pyc | Bin 6237 -> 0 bytes ...st_ingredient.cpython-314-pytest-9.0.2.pyc | Bin 3683 -> 0 bytes tests/test_bun.py | 23 ++++++++++-------- 5 files changed, 13 insertions(+), 10 deletions(-) delete mode 100644 tests/__pycache__/test_bun.cpython-314-pytest-9.0.2.pyc delete mode 100644 tests/__pycache__/test_burger.cpython-314-pytest-9.0.2.pyc delete mode 100644 tests/__pycache__/test_database.cpython-314-pytest-9.0.2.pyc delete mode 100644 tests/__pycache__/test_ingredient.cpython-314-pytest-9.0.2.pyc diff --git a/tests/__pycache__/test_bun.cpython-314-pytest-9.0.2.pyc b/tests/__pycache__/test_bun.cpython-314-pytest-9.0.2.pyc deleted file mode 100644 index 77b19399db46a7d46d21144680e6ea3de6410c79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2654 zcmd@WO>Y}TbY^$G{@BE7T2KQi#8#kmMP#?NDQO$0EhNH~pjfNcxdc`ld*WDG?`~$- zDlt?F0*O>TaLr%fXK>@#l&YylLU8S^)Ep2e-t3pRAp%9HTo^g?zTdp}=IxujogdF3 zSgG$n>@H%2TAYYhDny1~0J4ofMH;@2JnTcEF7}0KRF}NebRdyE86?8>bUou`rqL&I z<9Os~1RF1p@Cehy64Fv1=t+zty67E3cr_c)c z4OT;run{aGO=+eoSQ}fuS`n(Du7)*XB@<~i{CY=J07oZZ1V-nz11F6=ug$3A2H|H4sw>u(rn`H99c_i znWkLE&vDZ$6H)aNSs&8Ta1-e$stB%QEqfU|;$=*ipxa)GJdNOiZo~ho+s2o#{qMUi z_X4^NNB4QeZj0@p+j9SHw`p0Jmia$~T8)X$)>$U5_AQQ`=UbI;7nsDS=OAymE}>rG z%`?u{oa%DX+zpoUXR3-RpIs^*e89z3)y;h#B88f7aXw-J60**!ZmB~&oqNySIiu$8 z6l#I;1=R&t^`pD;gZZm3h4T5$GSO))ch%YQi0kPFWfOYKFio8jhqmmVV^G4zK&-F! zyQbH*Tqc_~Xt-=rch~K{+4fcSj%lwNrXM`Z>aMXyxCfTM=2xj}TT7JMl%3GmY}zwC zoqXn)hGlplVObtXP`C``v3O_q2^|>TbNfPe_MBw_}ByrK@569`#1%I)* z@-4VDx4dCclUU_N;%<1hQ(o*krrj%qP(N4Z#c=%{^0rFO7Mt?x1B4z`O*gD|5H*Dd z2l2<=y#!CnHu~*2Qt~_PA9Js6zyFJp|91ZF{C%moGk6m?wScNr8NOu+rua2=y)TQ(oD6v=cps!0o13|BqD7j6+5zEFbmJWH8zu!y_ zO#JQ(z7wfu&<&=*rvP83N4o>!U-);3z77WT6t~LE_w07xBnwmplK*4jUV`nZh%x>d yp|83{?K+KAV(+NWkmPdo#YetM`#?@ms z5Frgxq$S!zR@y@>?PZl4QX(bFUyxjKov{ax)nXM6T=o`0F5!}VUv+nNO}mY46tsJw zG*exVud1ths(ml@P@H6#1wW z4}Xuhx)GOka=kEr53c^7tk6Z3HjF0(GG6$;{sWAxEX~T;2*a3hk&4nR*0aFNslC(TJU{);tSCYD<*(OVFCTgYZ zYp zJKD8b()LwscOAy1c!e3c%X_T*C`9qShk5YdVvqCS?O-0hr1uo8aVr#w;#UGGl9U@t zeY2gGgfQzvR+)W;r{uF{ZC&rmO7NUak19b})sgQPKw9?}9}MaKJ8V5;W(1=#-Fs&x z|0bHzG?kWO$4(R^-S@l)kBMFDP5%5c~x(sYH5Y$)AuvE6;%&vPytOfipyCKUno8(sah$Wp?XVt zK9kF(samA-g{5MKLR+W?>1?i)&13n8M)kA45 z^O=f0=+TR8V%b9eGNlEox28WU(4|Z%t^TT*%j7d9sEPY&0Ef(m62W^JPh(gYGNVSu zXgw}wPHXsM##qqLC2zrl)ROlyG^gg1msIUusZdN_$`*5lrI>k54<~W98jE3KNSH+N zf!@rX0e>_-(5(-?+8-e*OV68Izx-wS%JXpa%j4y#&EEd<)ECzuU$2oPFG%={n~!gP zHB}=WFCs0!JNw(S71FiZT8(toiTPP4T~E&P98Wx%;K?3R+0ZA3UnW_eG@1l-{Ra0CYsg;&WET<%SI5Kdcw7_=nZFe(7?fCGp-fYgG#07Uyv z9H!R2B?(?x4g?2C>~^l`wc8m$REPivSIED^*tUc9PGjTkU~Guro#Z*JcL~IgtS2b+ z?7j_b2gDHrh`J}6r?_tPa5le4)rG8@FHsz>K>}Q^G=dTS@Bl*E2Uj5BC;||$7t7`u z0Reah6d_?k5jdH!JJrIE;!Oe(qnU+;v|X)7?6gMl7pJWl;U-FPx)kR}VXu^E2S&Ij zJT-ZB6blYxgu4Rm!U%R_N#GGZ0(rgFU~9vj=?SRWhtf|Wvgy+D(bsL|Pk|_P(pe>) zt0!yZ*o)4ddgoxZbFe}NE0Bl`)`|I9CxeI;yTC{bWozyd(A8=iZwNwGZiC%}*N6#_ zqA?ilJbZcJX!&YyXps|gO3LFl#R8xPHvvbO<4c<9UZ##D3Nh4xe)a)1u6m)30Cx=X z=etJ?@^(LV)KJvj8EYteU$=!!Tz=!v7fL`D;LK@@Ge*ffv4$RpJL@e}T`JsH1?KD) zGZcT4Ei7qcEZN%WDG)|NX@7;tiIdGk{i|K&D>c%_z|vI(UE*go((|JGXuUgG?M_xm zvI2=nvQEs;I!Pi#>;fY#l&!f-Kv%0N-VlVW+y=V`uMra<^%k&P*b`V>Oh3=<0}0P= zU^6F=nLyeWHzO%I;aQ$a5oYk+vR<3Te=u{(e%)NmM9^=7DIXYoq1$8cUBBTks5L^< z;Il{QuHW!>hJGXL^zQOr%j5w~Xs5o3CF{^P{EAQUr~D2BEHJx!eIsD?Y+bmd<4dd(d4cZJsmd3G-?Iq|AwhcB8HkhDs7!=s| zjtqzgnL?yD*|$m$H{?c`@*!GEV@xLzEu;xC^Rb3MlVL8!VupfpkU_;c#tD$?gRk}{ zh-{>^wtqcQzV_U>Y#usZ=^VGwa;QoUtq!kdY9t1hP(9LJjdWMYcONj}n+6og?Cebc_eH`Ndr_aa@H*+H?&)Yps zF0H(CS5n@$x7w9|3TNsFDX!=*LYj-U9$CyqEC^R)s&wh@N)|=i{CjsO0MRR z5>5pGfsxxO0fFdQ;`+&t%ID>6F!0=s9ga0Hxokt#U6vb0ihoC0zXh`-Y4A)1l>lrc zK?g2Fd+=9Ux+J7M85PiATiS*J0>d8~( zYjuJgt&suOLebr{$qmI*Al{f`06tue9IlZ5O62f5lDPldRu)ww{dHn~*0CBWY?l~m z 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 GvHuO-KeV_2 diff --git a/tests/__pycache__/test_ingredient.cpython-314-pytest-9.0.2.pyc b/tests/__pycache__/test_ingredient.cpython-314-pytest-9.0.2.pyc deleted file mode 100644 index 6c44082b8a1f7c4dd99c01b02714e91ebead1b47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3683 zcmd^CO-~y~7@qy`dc6w<(o(3P*iKYx6N({rQfNxsD0XAF6r4>kssyYyW&sO-EVFC1 zP(`9@rS>P}Rv*(_{z7j(+JFF!R3*2nH(Gk?sWbZ>idvBydTf|&O0;DGULnP zP66QO$De1)qci{|qBu{`7ET^uVFxS&iOK_mGJ875H0TJ(u|^GP<-1=Lvhtl9^Eb1o@3i@o{LBot zZ4Z{+XxZ4()X`{7sp3|H<&wG`TCW>XU1^k5#FZLGMKwx{T?gqz{73YYb-ZXhV38t5 z@+?qAI&C90rpOfRiCA8%-OR+?No~#-!DJ4A&DD2oNS0db1z->?vQA8ab0n{i0jZ2BPJwK<$mA+GP;s1{N z9M>f=z8Rg3XPt2*_J6Sf7aNec7cghwRS^I5w}xJHb0uIsG~%g|1T?d!2$s%(mA(v?HBj8}(dl3oqP$<=G~@0Jc%iex8$U zZX9Nt@Y31#hQl$hKgBlsx!BgVAieTz6JG$^=x1b`8;98@zFf9RA$;_A|4mO%BSzaA zM}l{H6T=nKq)BrPb$KrHVBZcax~@Va`gUB~noQ^fH93n|a@?bUdE6%`7{nY-P}{c% zD4o!SuWcbZZN^=3Ojxi@;|YCiO*PChg!}P?a6dY2fv+X>XG=v&IxAJ~{8gFr`gg7l zNG>FZcM3V~X9)FYRaN=1gM221s-ra%>SV7Gj)QLY%}nvS?i9V2wqFYD{| zMrFl>%4?PSJ*6U>>lu=DWmP2^Q22(q?B#kb3t=6i*W}eYtSW}Aex+5Enqpv&RfrWy zO0sq%1Uqq&u!}U^qzRFlMN*2jl@op?e`X|5RyIQYmbF76Z;Z)VzJ{E)TZeHMFgah}DJNjbJ{myJ8x z0YML0o--pcpqcSU`ZU*!1srS^7io);7CX`sBYR>D3(fhqIC99^?>_OwT-6mwIW}aM z9dWb+GmqstGZF)u^ZrPm=9;m9aVL1cL81%s&bI=|RSdl;TVL0h#aqnyF{pkC%Z7?V zt_cNg8zh%L#91LG>8-D|+eb3;Q$>g57X~Dke#BN4xPe6cvEu(71}tx@CjWi{@Djnq z2!{WlT3=~Y)DPjiSS5FP{Wfln8H%DF1MnUAw)0mIdkj81<^auqKk&`KA=Tfe`j6O) tPeMaY@!_2oKXDX_HscR(w)pYm02AO&0vt{M5e`t7Pr9)5Cy~q{{{fiCg%SV& diff --git a/tests/test_bun.py b/tests/test_bun.py index 7e5ccdf3c..636e6cd3b 100644 --- a/tests/test_bun.py +++ b/tests/test_bun.py @@ -2,16 +2,19 @@ from bun import Bun -@pytest.mark.parametrize( - "name, price", - [ - ("black bun", 100), - ("white bun", 200), - ("gluten free", 300), - ] -) -def test_bun_get_name_and_price(name, price): - bun = Bun(name, price) +BUN_DATA = [ + ("black bun", 100), + ("white bun", 200), + ("gluten free", 300), +] +@pytest.mark.parametrize("name, price", BUN_DATA) +def test_bun_get_name(name, price): + bun = Bun(name, price) assert bun.get_name() == name + + +@pytest.mark.parametrize("name, price", BUN_DATA) +def test_bun_get_price(name, price): + bun = Bun(name, price) assert bun.get_price() == price \ No newline at end of file From 6b0c9e8009dffe87d29a8a7cc5c251765ea08db7 Mon Sep 17 00:00:00 2001 From: Karlen Date: Mon, 29 Dec 2025 14:34:31 +0700 Subject: [PATCH 3/5] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D0=B0=D0=BB=20=D1=82=D0=B5=D1=81=D1=82=D1=8B=20=D0=BD=D0=B0=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D1=83=20=D0=BC=D0=B5?= =?UTF-8?q?=D1=82=D0=BE=D0=B4=D0=BE=D0=B2=20=D0=BF=D1=80=D0=B8=D0=BB=D0=BE?= =?UTF-8?q?=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/test_database.py | 62 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 50 insertions(+), 12 deletions(-) diff --git a/tests/test_database.py b/tests/test_database.py index 7ff7beffc..55ed9104f 100644 --- a/tests/test_database.py +++ b/tests/test_database.py @@ -1,21 +1,59 @@ from database import Database -from bun import Bun -from ingredient import Ingredient +from burger import Burger -def test_database_available_buns(): +def test_set_buns_with_bun_from_database(): database = Database() - buns = database.available_buns() + bun = database.available_buns()[0] - assert isinstance(buns, list) - assert all(isinstance(bun, Bun) for bun in buns) - assert len(buns) > 0 + burger = Burger() + burger.set_buns(bun) + assert burger.bun == bun -def test_database_available_ingredients(): + +def test_get_price_with_bun_from_database(): + database = Database() + bun = database.available_buns()[0] + + burger = Burger() + burger.set_buns(bun) + + assert burger.get_price() == bun.get_price() * 2 + + +def test_add_ingredient_from_database(): + database = Database() + ingredient = database.available_ingredients()[0] + + burger = Burger() + burger.add_ingredient(ingredient) + + assert burger.ingredients == [ingredient] + + +def test_get_price_with_bun_and_ingredients_from_database(): database = Database() - ingredients = database.available_ingredients() + bun = database.available_buns()[0] + ingredient = database.available_ingredients()[0] + + burger = Burger() + burger.set_buns(bun) + burger.add_ingredient(ingredient) + + expected_price = bun.get_price() * 2 + ingredient.get_price() + assert burger.get_price() == expected_price + + +def test_get_receipt_contains_ingredient_from_database(): + database = Database() + bun = database.available_buns()[0] + ingredient = database.available_ingredients()[0] + + burger = Burger() + burger.set_buns(bun) + burger.add_ingredient(ingredient) + + receipt = burger.get_receipt() - assert isinstance(ingredients, list) - assert all(isinstance(ingredient, Ingredient) for ingredient in ingredients) - assert len(ingredients) > 0 \ No newline at end of file + assert ingredient.get_name() in receipt \ No newline at end of file From b2b294edc57251b3dd0bb04e604f24be7744d25e Mon Sep 17 00:00:00 2001 From: Karlen Date: Mon, 29 Dec 2025 14:51:17 +0700 Subject: [PATCH 4/5] =?UTF-8?q?=D0=A0=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=82=D0=B5=D1=81=D1=82=D1=8B=20Ingredient=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=B0=D1=82=D0=BE=D0=BC=D0=B0=D1=80=D0=BD=D1=8B=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 6148 -> 6148 bytes .coverage | Bin 53248 -> 0 bytes .gitignore | 4 ++- __pycache__/__init__.cpython-314.pyc | Bin 148 -> 0 bytes __pycache__/bun.cpython-314.pyc | Bin 1563 -> 0 bytes __pycache__/burger.cpython-314.pyc | Bin 4127 -> 0 bytes __pycache__/database.cpython-314.pyc | Bin 2771 -> 0 bytes __pycache__/ingredient.cpython-314.pyc | Bin 2012 -> 0 bytes __pycache__/ingredient_types.cpython-314.pyc | Bin 376 -> 0 bytes tests/test_ingredient.py | 27 ++++++++++++------- 10 files changed, 21 insertions(+), 10 deletions(-) delete mode 100644 .coverage delete mode 100644 __pycache__/__init__.cpython-314.pyc delete mode 100644 __pycache__/bun.cpython-314.pyc delete mode 100644 __pycache__/burger.cpython-314.pyc delete mode 100644 __pycache__/database.cpython-314.pyc delete mode 100644 __pycache__/ingredient.cpython-314.pyc delete mode 100644 __pycache__/ingredient_types.cpython-314.pyc diff --git a/.DS_Store b/.DS_Store index d1109c78f3e5a2ca262076abcb72da4dd5a503d7..bf96046f81803a38fe74bbcc594986882bd76349 100644 GIT binary patch delta 253 zcmZoMXfc@J&nUDpU^g?P&}1GKso1+Y3=9k`40;Ud44Diix%nxtK!`NDq4fGCN4%zXx=AZ6Vz(N+P7ul)UMbdTJ diff --git a/.coverage b/.coverage deleted file mode 100644 index 7d0b18fe3dd17d83b9f412465a3de29b61e77c98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53248 zcmeI4O^n;d6~{?Y5=HGwvyI^j+l8@%0_}R?-IWzL3F@RxHn9&u1LVu?rD$bJn%!kr zBDExCdyy87k{|{OOS`P1m&tq|`LcqIZqn>1I-* zn4Zv4&!i7ZTH3}7|Eh`aX!GS4H1Yk~qhfvj=e4iSeK0?;emwV*XofDHsd00cnb z|C_-0@p-ecxTrt#qtNd3Rp{GY<;VNlLrw)^eea?i zDqn6neI*^Y=XCARakpi-qteo&K=pW{qdc1GxZp-4&#AW4BdJhrlZv753~Ya2?yCK@ zs6bL%s4j(Z1}Ra_w#y~t@kD%8`f5x0%I&Hkw&J+cTdl4>d%0>hjvUdisK_VV@6u~- z#v96*y7KTADe8KDkFD?cw%grN!J4!u9(Fyl^HLal>wAM{=*hn0MsB)+6FQzN)g{#( zg{pT`2iF){x)HprH>B%4J9IvlOzO(enF`-TGAW)2Z;^4Xmtvg?a@8ap+3b!69YX$t z(O}4pLlSYtp?8qvL9(HjIGej|Zqk-he`lIAMb0f6OO0G-Z=@!Tzb2=WYmpnSwQb=Rr_Wn$dlY)nd7B!)-J;$6b6=>Kjpb$i%3c&GjHlgk!eElH zW`bsteL(2&^@HPvd&z8&a4+ijrMDGz8J3oD<4`nb`%E*1Vf)yJZH?S6ca?yB=z15FZ*QxOf+hx zj2)`b87Rp`B4eV!x@ZTo>nplQbLr}e@kwF8t<`Svo>$2g{wOzI*3HI=6Z&|RbjEm` zX$Lf^5A4+J#>=BL;L@j^Y@9H=3=TexYv92xZoy7WAuW}B)~T-Y0$&&Z z(ddN@1V8`;KmY_l00ck)1V8`;KmY_l;PxY6=mp*6^?yP9UK7`7hYbWk00ck)1V8`; zKmY_l00ck)1VG?W5|}R-$3*%KkCO|!v9y?c2jHHK)~St?Rr0DJu4>|{_{X7i5JrOl z2!H?xfB*=900@8p2!H?xfB*La{bTs zU)H^PtM=F0Ym|)*1V8`;KmY_l00ck)1V8`;K;Tm%aMzrn?KQt0&`;f)ySCp~Zu5)^ zc0+I2JmU=e^!G0Dq1|c@eS0@_c1HvHnfuqOhUVoHYquTO3EORwdeACrV=JFnsDdzP z@}A_k=`SE0<%Xo=zKWq;&ZlB3*ADlGDqy?K+;;Py0d(v@k<*7Tr>%;oh`kl40ct@P8|EhNFQwnmZ0Ra#I0T2KI5C8!X009sH0T9r% zyN$h^YsKvPf9@{B%PE#w|5qO>j;)+xnU&(qirD&waXF`osoZ4!U&(KGX7z4v7RRNW zm1gYDXei%f1UVH6EdXQ*N?;FWz4q>p6uo)=uP&lZMJE9{jN?d zi~s+_AOr#+00JNY0w4eaAOHd&00JNY0=G2*gT6LUXG2!H?xfB*=9 z00@8p2!H?xfB*=5W&|qLqHf(`y}xZ%EKZf*|HZuv6-s^C`1q$MUislWuYT`>cg!@4 zmUYL+=Z$iiF4ZeW^_`C?hNRqQgmh(qeIb%4ut~WEwHNm{9jwhT_p;F z00@8p2!H?xfB*=900@8p2!H?x96|#8{2%N8L)dUI83aH81V8`;KmY_l00ck)1V8`; kZh-)v|K9>E6a@hg009sH0T2KI5C8!X009sHfkR5*f8AmqH2?qr diff --git a/.gitignore b/.gitignore index b96baffa8..db50113f7 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,6 @@ htmlcov/ .vscode/ .idea/ .DS_Store -Thumbs.db \ No newline at end of file +Thumbs.db +pytest.ini +__init__.py \ No newline at end of file diff --git a/__pycache__/__init__.cpython-314.pyc b/__pycache__/__init__.cpython-314.pyc deleted file mode 100644 index d4d908e2d7d534795b6fb434d7a5a4248186e0d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148 zcmdPq)b-GC}lX5CH>>P{wCAAftgHh(Vb_lhJP_LlF~@{~08C%TPbGIJKx) zKRdA~CpAysCAB!aB)>r4C9@zWKNm{H8|uf$XXa&=#K-FuRNmsS$<0qG%}KQ@Vg;H2 SvZENp_{7Y}$XLV-WB~xX>LF?X diff --git a/__pycache__/bun.cpython-314.pyc b/__pycache__/bun.cpython-314.pyc deleted file mode 100644 index 36d1d1285832e96daa4b6627e0ee57a356bd4919..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1563 zcmb7E&u<$=6n?X7J8P3)r44Ca1cpcv7AO`1Bn}lqs7DmRR-_WB9c`Trth(6^v*Sa0 zvM6e)R8et^#6RF$C)eDj`PpP#D{ z)}N0*jP41d-`ND=HLS+*IqwUikje6^du(fT9{Ro1#4s5neoSHtYKPIp>Yqn$Y29x3@| z>sBXO+u6-$r3{iJ)qxJB%ooAu+B7nQoY`fFr(GJ7Q@(u0V(;21tKO2e25?iGFFIaa z32blh5;k4BzL<;lwx$*U{OdtRbDX$s}R zY&wd^MLh>GV%%1y<`|uau$~LpSjt5C(iuVQtyndw2?2I78q0U2Pe00pq=b@IiXDlyc%hodDW#Rmz-3PnIyEv&~{1VT^i&`!!sj~WCHkgrY zij6wcP~UsUs!1h?vg;Yy;CEL{+%y+ezP+8Ce2$ysAJf({VdKt&JI1?YYf#T4$2$H{ z&|l0V`l}}8cDmV#d5K_nG6Cy^vu@t`K7A%!~SfAnbv^0j1w> AZ~y=R diff --git a/__pycache__/burger.cpython-314.pyc b/__pycache__/burger.cpython-314.pyc deleted file mode 100644 index cda793c11aae33ed9ce1b37d99ec8ac13ad8f20d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4127 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 diff --git a/tests/test_ingredient.py b/tests/test_ingredient.py index 39b4e44b5..68aa979e0 100644 --- a/tests/test_ingredient.py +++ b/tests/test_ingredient.py @@ -3,16 +3,25 @@ from ingredient_types import INGREDIENT_TYPE_SAUCE, INGREDIENT_TYPE_FILLING -@pytest.mark.parametrize( - "ingredient_type, name, price", - [ - (INGREDIENT_TYPE_SAUCE, "hot sauce", 100), - (INGREDIENT_TYPE_FILLING, "cutlet", 200), - ] -) -def test_ingredient_getters(ingredient_type, name, price): - ingredient = Ingredient(ingredient_type, name, price) +INGREDIENT_DATA = [ + (INGREDIENT_TYPE_SAUCE, "hot sauce", 100), + (INGREDIENT_TYPE_FILLING, "cutlet", 200), +] + +@pytest.mark.parametrize("ingredient_type, name, price", INGREDIENT_DATA) +def test_ingredient_get_type(ingredient_type, name, price): + ingredient = Ingredient(ingredient_type, name, price) assert ingredient.get_type() == ingredient_type + + +@pytest.mark.parametrize("ingredient_type, name, price", INGREDIENT_DATA) +def test_ingredient_get_name(ingredient_type, name, price): + ingredient = Ingredient(ingredient_type, name, price) assert ingredient.get_name() == name + + +@pytest.mark.parametrize("ingredient_type, name, price", INGREDIENT_DATA) +def test_ingredient_get_price(ingredient_type, name, price): + ingredient = Ingredient(ingredient_type, name, price) assert ingredient.get_price() == price \ No newline at end of file From 92c00295ee12dcaa0a37239cee97d76e7f41a1d9 Mon Sep 17 00:00:00 2001 From: Karlen Date: Mon, 29 Dec 2025 14:57:29 +0700 Subject: [PATCH 5/5] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BB=D0=B8=D1=88=D0=BD=D0=B8=D0=B5=20=D1=84=D0=B0=D0=B9=D0=BB?= =?UTF-8?q?=D1=8B=20=D0=B8=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BF=D0=BE=D0=BA=D1=80=D1=8B=D1=82=D0=B8=D0=B5=20?= =?UTF-8?q?=D1=82=D0=B5=D1=81=D1=82=D0=B0=D0=BC=D0=B8=20(90%)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 __init__.py diff --git a/__init__.py b/__init__.py deleted file mode 100644 index e69de29bb..000000000