From 83efec747218d097f1c7dd27720e30c4448dc7bb Mon Sep 17 00:00:00 2001 From: Rimma Date: Tue, 3 Mar 2026 18:40:46 +0300 Subject: [PATCH] =?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=20Stellar=20Burgers?= 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 .vscode/settings.json | 3 + __pycache__/praktikum.cpython-314.pyc | Bin 0 -> 1383 bytes __init__.py => praktikum/__init__.py | 0 .../__pycache__/__init__.cpython-314.pyc | Bin 0 -> 160 bytes praktikum/__pycache__/bun.cpython-314.pyc | Bin 0 -> 1575 bytes praktikum/__pycache__/burger.cpython-314.pyc | Bin 0 -> 4166 bytes .../__pycache__/database.cpython-314.pyc | Bin 0 -> 2813 bytes .../__pycache__/ingredient.cpython-314.pyc | Bin 0 -> 2024 bytes .../ingredient_types.cpython-314.pyc | Bin 0 -> 388 bytes bun.py => praktikum/bun.py | 0 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 tests/__init__.py | 0 tests/__pycache__/__init__.cpython-314.pyc | Bin 0 -> 156 bytes .../bun_test.cpython-314-pytest-9.0.2.pyc | Bin 0 -> 7110 bytes .../burger_test.cpython-314-pytest-9.0.2.pyc | Bin 0 -> 11840 bytes ...database_test.cpython-314-pytest-9.0.2.pyc | Bin 0 -> 4583 bytes ...gredient_test.cpython-314-pytest-9.0.2.pyc | Bin 0 -> 6278 bytes tests/bun_test.py | 30 +++++++ tests/burger_test.py | 83 ++++++++++++++++++ tests/database_test.py | 19 ++++ tests/ingredient_test.py | 23 +++++ 27 files changed, 158 insertions(+) create mode 100644 .DS_Store create mode 100644 .coverage create mode 100644 .vscode/settings.json create mode 100644 __pycache__/praktikum.cpython-314.pyc rename __init__.py => praktikum/__init__.py (100%) create mode 100644 praktikum/__pycache__/__init__.cpython-314.pyc create mode 100644 praktikum/__pycache__/bun.cpython-314.pyc create mode 100644 praktikum/__pycache__/burger.cpython-314.pyc create mode 100644 praktikum/__pycache__/database.cpython-314.pyc create mode 100644 praktikum/__pycache__/ingredient.cpython-314.pyc create mode 100644 praktikum/__pycache__/ingredient_types.cpython-314.pyc rename bun.py => praktikum/bun.py (100%) 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 tests/__init__.py create mode 100644 tests/__pycache__/__init__.cpython-314.pyc create mode 100644 tests/__pycache__/bun_test.cpython-314-pytest-9.0.2.pyc create mode 100644 tests/__pycache__/burger_test.cpython-314-pytest-9.0.2.pyc create mode 100644 tests/__pycache__/database_test.cpython-314-pytest-9.0.2.pyc create mode 100644 tests/__pycache__/ingredient_test.cpython-314-pytest-9.0.2.pyc create mode 100644 tests/bun_test.py create mode 100644 tests/burger_test.py create mode 100644 tests/database_test.py create mode 100644 tests/ingredient_test.py diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..8b9630c2bf4335bf7ba6639886d9c7f06a3e444e GIT binary patch literal 6148 zcmeHK%}T>S5T0$TO(;SS3OxqA7OYi@;w9Aj0!H+pQWH`%G|iSYwTDv3SzpK}@p+ut z-H4?XJc-yDnEhtwC(C{t_6Gn&cN!i7)B(UkB`n$4tPzTnu1Lvv2!;Aa1`!Nl3Zr1Q zlFg34$N;UK4P!{b$CdlCev@$!%K)Qq!8nd4S*!IfO6AJdcGap{HS6Ack~1&!v+1Pk zr?=F*k}?ho+Yhdz!K`23J(o%5N68>n1yMM_l)IZK3FWLSr%5I5nV+^>XdiVJ3)|Y;KRCPW593iHUo@Qp|2!o-1`BvaW6jK-y)=ns@`%x* zvZ!EW2ABb6U{e?{`=3?YlnL`ZnE__t#|+T^;Ghz^26K&S>%fMtj})&ElAuj*2|~x9 zYcSV{5fq_I5p}6BPYj{U(eIc%*I=$umxE9v<9E!+!n{y~8Xf(PN(bR;u#OS|BLV6|I0<(V+NRkf5m{P^t@gdr)197mC4ar>!3cMl2Bf*@v{UCbrfSR9mNe) aCFpm^Ky(e}8qtHo7Xd{BH_X7VGVlRuKuxd! literal 0 HcmV?d00001 diff --git a/.coverage b/.coverage new file mode 100644 index 0000000000000000000000000000000000000000..50934292cc490f3a7651898fa3a6942ff94b22fc GIT binary patch literal 53248 zcmeI)&2QUe90zbacI+lix{8eu_188uy?SGjL~*la;s`sk?%<4vig zy(JlMPaH88OKYV+#y=^&P`EN~>kEY?+JFfH5P$##9vgw~#gbl`nv!qc2(4O+hrU(k ze*8Rf_R{Lg*%N@c3g_mi#gM7P^yrxQHZv0JC?uAHu&~Jv_tZ4A>Rt)6%>TqYp&RX%_Yg_ zna`Wt=Wd+`aW3ZU#(Z)9{dbFc< z=fMKAdL^uTl+Ud&F0Jo5%b~|wwi^}G4eZeNT*kL}y%X}rt_55WXz4_F{iUH;S4DxY z#wnBc>eI;*?~*dvJxSc8%(-65nk5u(O^KsCyB()S9p0<_1(u~;h>GEQ3rrM(TEH{oTIIz2A%ATNhm=5M`))o7}h7_)@Yp9u^*TL!zcrEohb1nPE+**96RJZ?@Q-()7yow0yG= zHKU}qk{5lT38gi;%P^X5a<~)$n$VSPuk0e{DIE%VgS(zSIoMb<WjK!)L#3h3oA8yo=S8@!7mqIeB#v^WwYy6AV#5JmeoA3#Vt2JHc*Q5 z0llXkuqY4rAC*pJF@kLoV{LOb%2Rr95ySjt>U3%Uq8Z1r+(vS|5{Kb9DvkZ3bBgzg z2N6ohW~oyK)J1p1OoJv{#fX*0Uuu(yi0W94xVwu=>5F)Mo!=KOJ{p~~LLS-~#bI8iE$J86gh zf9=ZxBGV9n00bZa0SG_<0uX=z1Rwwb2=oL>%27GJ43H}-(}mGBuldu4|fF+l(V5P$##AOHafKmY;|fWSc&IIDIG^4?EW zdshPJTvLBV?N&yJk)3h(&i}PDYF8g2RNwi3{+!w!A0b4R8!D1|TJ0($1nHgsD=#TG zMoKTv|8py(Fv3NdzVm1T;;R3uW!=u{^y#scPPIQKh-3^Cy0}>nbIM=8q^JcYpZo zQ%BZwv^1If;D@}d77Arq-2c~%?tANVM zhj-RT2*5XH1QHs8)5jFFK^2sR5-19ukYYGg3Kd09^s!iiMah$V3`=q`?1gOWEp-RrT@Q#To zQVPgJHRPHUt0iX#n}%gN-u5t;ujpBTNWaq~f$e>hu4fWdY=TYZ_hrNh6|gP^EY~A{ zi2B2v575XjR)qCPz;ay)Rl)5fw{yeYqyUYNay~#6u_|0J9$qkBykNZa&-n3R*IZXa zRUtQ=9{-G!+!vs#$h)vP6|l4)R|3p+&|m(GvM>kIA$16=p+a)mN3Mz8Y}vAHR5l&M+HLHi>^?HAX1!r&3%=5qvQ3P3 zJ!`jRFE;lHw2|fD7)`>)%>6`{Hu#>HeVuFc=wOSmrR6Z5OD0 zBh#PHcjxnm^M&?(YD>}QYfsl+6gpF{?)9Md6{>xh=)y#2;VpWz*n{cM|Hb&3`!Lys z$<9&-_2A5q(YjFUJnX>~-K3-*-0Z7bSJe*H>qjtkN)G{uqU-Ezy1tqoBeJ*OWL;w~ zl#KHZ(0*dpL2~Il$Nm=1ZvQf;gUj$|gIwhfejAuQWxtuMx`S*}*WUviXY4eqqTIC` zMyqZv;~8qQN9$(jax4mhFaYr%;MxGp4Zy7dSU8b2Vdi)lz_EiTJu&eGD$iDai2x@3 GbbkPq@E}0| literal 0 HcmV?d00001 diff --git a/__init__.py b/praktikum/__init__.py similarity index 100% rename from __init__.py rename to praktikum/__init__.py diff --git a/praktikum/__pycache__/__init__.cpython-314.pyc b/praktikum/__pycache__/__init__.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e06a15bf7867b2fa2681790f417d903cb0fd9e7e GIT binary patch literal 160 zcmdPqi_@% literal 0 HcmV?d00001 diff --git a/praktikum/__pycache__/bun.cpython-314.pyc b/praktikum/__pycache__/bun.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..684630b94c0d4339a4dd33259b8ea192a3ecf2b2 GIT binary patch literal 1575 zcmb7E&ubf35T3Uy$t%@A8#|8WkSH~nih@OH3O<-pO3$WU69*EK$7Z!|7q51mw@(4* zB;sNx5E^>vHymrTi9z(x!Dm!IcDaqR4JDfKhVsZZ|2R;``(Pc7#%49 zt~dLC_}dKN6&byi>2BIZ+%#Ycu7M5HV6*E+>XBd@b5J(j-U-rOAGB|w;o!MDAejx) zxXYw@5h6SR||>xT|KNn z#;+9A@9ISTtq#;t>uE{tx3<)gI%(~w=jyP8_)+VbMq3T_mpVYXw@^^O4MZK3)C5CS2hwemLkcn1(74s z%B@AB=E!7(b2o6}xazx-^Oz2P)<_mBH)2o372B`X9NP=4{(AJlscbq`ew*& z`FSynI~Sg#D>FnE z!;+lvWL<=1CM-0|hM>_ApP=ZnuPYNHgpQ)no=Mzj%2;;h3{dROY1OX@1N0&`G*{`k zt-=po$Do=6F@ZMLKuk56xPU6Aqdi`J@+8;&qj~9Bx|S|4V;7!nKG{^(rG5>)mpB(M zVmhrPPwIc!AV%T=Hi|?;arbMj`judmUgu>J)JJ^aOS+Y^_u3uTBnWeM{V?7owxfn3r@DQY@XIrSw|gh%&l#cAAq@lQGsY LMp>~9DD;8%3*>b1 literal 0 HcmV?d00001 diff --git a/praktikum/__pycache__/burger.cpython-314.pyc b/praktikum/__pycache__/burger.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a3847be2be2c8b127f5a17170f162658ecbc1acc GIT binary patch literal 4166 zcmb_f-E$My6~DXEN-J5mWsEHsh_yDVu_D*1jhj%uLLsCkX+5r(m`rHc5z<1p$dYn* zonSu+$P|-i%H*XnnLgMvoictiP2JLvQ2vD73Xo@KGLxB3AM%EynL3X>=kBf~WEVoF z_u<^T=bn4+xxe#q?g9O^wxBjF)5D57fez?u+4627=P$FkYiaSBZIh~8*m_Naf zdvp&Qdro-A1zm`eF49L*-UvwvW4ygu_oaNhN!wpW_4n|dhTY#HI+r3kf5xwSx=8_S(Y+}?LUdt@?B!CP2+4`Kb1tm= z7)M|nALIBL$Imz-ebGG8o(jf3xKn~|WHC9mY4#+dDSIkRs*ll6+ zQuDWx@fqy+SD3mh8UJ9GtpaP+yawtnqtT$`3T(ClN4Sn0(1eGwm*7EQ4_tWFS>PCJ zUSh_Y?}7Ox(70m$h8g^K33qBlVs$u}0jz2b-RvPmtoFm8L{emm28o6f4mTwyx- zGVA1#WRa#X=<0=;>Ev1F$Km3vCCajzS9Mvo+HL0!yNq^Fu5~aw*E%Ef-VemJA0+3! z55=A;n#|7STI-yPR3(@>$d%wEXZU^Z5t4<|?jpb7e#ND@liX>NB+oDw+|uDb%kr!ByabIi;*PZ16_W=0JR*hYz(qRZeP ztp=aVV8-~F=C#i5---7A2-tT7jdsCWD_D;M>H`K?)(stv0BMAa_8|9rKybPdl_7*< zXn6|ZV&eYXjzKC%n zzA*$gwxqFcGrqN`lh`@7#&?Pn8!+S;hAwt7+z++5G1x(s>B2ioBYZs$e4A#Nv6xPP zU?^M(?J`5V7GD2nX!mC9ydZ^ct_}csQckCMmf1XHwuc2NMH8(+UU?U60x0SC;rr=8 z?gA+-3dBj@aSkCI=ax=BV*Ra?_P1?nV+3L%z_(b%41SiFJtb`!-S9GKZuRJPZ~De4 z_c&3m=AjbnmZw-K0v4=fAQm(ML_>=QT&J}+yR6%BSreauvIkaf4*5VOallL*s3cx8 z6EEEp%86GVia*`#M(9*E#`m<43Hk zTLn_Ad4V#QeGG$VaoL!?9`2W+1~(NsNF>zR)WYNy2>Bv^YTH&N%hff6SCP|-+-o}t z36Neg#X&@K3=eQ7idcd3Q0|LV%_w$C+CH`fo5iXc^Rgtd>w&(2i^7g)Yik))KY=Om zX?Xib;)h}-+;4{a%i-AK+YiEn^TL-qdMi7gzrW-8`B&FM9hI)Q*%dE$B_4zl?;l_H zke!J~J`(Pl57lw~PL~QD1tY-69!;lD&rgiPx`zWo|2hG31F{mjx+NgRnh2D6_%pE0 ze(P+RYzSCWbNv#6XYZ(In0tbEC(yf7+$7$#O)bU$GT^eN_({CZo0_|idvQ%R#DOd7 z%785%(DGz!y`zGwD@tC2 z7AnCebUzS_P3W^l#S(IbcNJ^BAu+Ac(k;UyddzX64eItf6YDD(l7stMA z@4P;HZFV72ZtpY1K9*861m~EDx8Xw_k%XsjP?o0)*_j-U;ZgkdOgiVxw9E22m1=rU z%`5o=O#5XyTgb>VMHf@3YlQY88AOsqf)$D$17dZ-dmA3tYDP}$I#tik=!ym^IvQT& z86}sKWvGelwTUI?h+XF}&nOa1L+$54zPSqMuk(T+e%;0kKim-EC63p4WWxuqPaF;5 zD2AgLj>b9rmf!Hfwebk=j*T$XmH*U=3)4Rl_gg*)9DFKbDq5|zpPFHKhEu!}tnGDP z{YgpDG^S&j*vR5D$Py3QSRSTWobX5*zMLO*ME*^l`+_7kd~vS73YF3>bN>a9 C^N#KS literal 0 HcmV?d00001 diff --git a/praktikum/__pycache__/database.cpython-314.pyc b/praktikum/__pycache__/database.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a715290b4a9547dd9d3261ff5591bc353a524f65 GIT binary patch literal 2813 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 LFENN0aR4O&x-^mL literal 0 HcmV?d00001 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 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/tests/__init__.py b/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/__pycache__/__init__.cpython-314.pyc b/tests/__pycache__/__init__.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..77be2a71704e4233f8384b0413f112eec8e73896 GIT binary patch literal 156 zcmdPq>P{wCAAftgHh(Vb_lhJP_LlF~@{~08C%ThnIIJKx) zKPWRdH!&zRFC{ZOzbsL|GBG8yASXXp-vvy?8|s&&7MB$3$H!;pWtPOp>lIYq;;_lh cPbtkwwJTx;ngp_|7{vI*%*e=C#0+Es01yQvy8r+H literal 0 HcmV?d00001 diff --git a/tests/__pycache__/bun_test.cpython-314-pytest-9.0.2.pyc b/tests/__pycache__/bun_test.cpython-314-pytest-9.0.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5f574e3c31c1cce9e45d7417e5255d3e82acf513 GIT binary patch literal 7110 zcmeHM-EZ8+5nmp8Jl>sjiXA)3hZ3DF>*HcsXIt`z>Z)*K2T>lXs;qq~5ZMHEN6CbE zA6oKkpK2v4S|Bp=kRVS&pY#;K|3+Whr^5PxR1gjNR-kXG)sMhH;m+)mJl^FjON~>c zNQuL6W@mP}OYY44cJ5@VJwf1d|Mi*qYmtyV3jQT|%fx zGB7$k@&-IkB~Ij~#3coAOd!qt9HHTPRWy2!NuzR9E=zBoQr0KhE{p{kUzuF$SpPrtXB3%_V2d@HFim;L@o*RiWG}EeOts{SmD*`n^tiJqo_n0qZQGzux_6*byO6Q5@xsId;c;YaEF&xqV)NOI zo%p%Oq{o=$>5M&8(u+o7DLuwp&SmUOg5t(;CDgcy%axh~yHL}qdq~UcmZednLi6Qf zMW=?_25N1lYFdt2vR&CKgN5zBtl789Rja^EwK=OiqgxsqF0R@7tbrrAsUNZ_o8{8m zl$NRcqBdKmMcvViyA?|>=?-Wf#9YZXtXYa%%uV9M_(IQwg^{o@%mqHy`LJ-&j=?B> zX?D4z+3WDe?5t`Qi@Iu*3g&$Iww|r&1+!w6i`lE}rk%;+>g_DNZVkDiO3gjVUI@0B zCDSo=%Uoo$)ojDD**dj+nNlO~ST%R}8u#I$19ZaeWiJC+CVxyF`sC!Qy_xD+5&zI} z_~X0x?>@Cn)u6k^S(Jz`CTn)%kjCdyRw1so0o zC&frfUqo^Q31(9I5)w!RguVU5q^;wLl6O^hM8N11vmgyKcONqXjl$1~l|I%%s6H@l!Bda2&#S6E67O zvv9$}@nZoDsfd6PuH+?aV@MLxYMu_L4fDsZ?Bj0U|phiPkzcu!d z{A{0<8j*u4tFfHigePJLz!NclWd9C$Lg9F#A_Atk#^7agF@EQk=@^J9ntU7K!w7Th z24FGDfyHRx>+hhikNCI(7!OxG1!~M04$F>-rGZQxasXWMA&25y>^BfRQ0ObL^LSKx z6}c`TVL0F+0FD~Y(Kk@dKnn*5XHMG)Ej&<==5gdWizEJA0K_;|TC)An!GX-14bfvy zTm1a?r$D}%&F|g6_fQ#Jx%biga9ewgk@b$j9mV@?g7W=93K$F)p2Y@Oc+xhG#1&ih ze!#B17MO<_us=`~QG-Lv(@qynQAGHUqey~9kz_*@K|KHMJZXsgI6c&J{j(!OaMDoa zuMtIJa9(@fQ6%0FMdENWX~y2hcyD4P!!0l{&X{SjAQzx`%4d%-j$_~ zK7iX=4HvP^?tyv^#tZ&2JBfBSWMypZ7|K2 zkOv?UTmi875)S=gU@>(#fE8j+Y*lVpxLSu53)gc3gA}tqq-ApZtkqC0WIfp2T_X_Xs`=#+f*W z-?(-9A+d4JNRa=9q zBcv$@DtGRghV;9iE?7XYzsJhve`_Nhhd(*7nRfI}LAG5x!qvQAND7*HU##{qWYEu%LH}CsdPo0`;{CRiegp;e2F~NG zytWOn@T6^E0TiI3RXES4A?QO@Bsck5i^m+&f5m9rLA&lE{)(JU7k(r z2nFXp{>|S9rl0)mawg&uiluxo?gB*`zh&C47^5cZK0}L_zaLbG;P+Twquzkqg2*3nuZ6^UL>cH;QtM-%*)oU zRMhFboAkB~H5Uzf3H3)c&30ga0r(hzKLd*jIpj`5{20M^Yr(|44~M(@0Js>H9( zBAt?Vi6qDVnh>J{yGh{wfgF3qY*hFQNb!s7tRm*VqVaVN@dGWC$cLzLhr%)5jR#FG zKyuc`of)U)wpXY=@0jz|;t+fX?(b~&W4Ht?CUO5$zR%zK59kE6;ZkipVSgbCg77Co Weno!S{yBO5pVF(sz%Bv8y8au!_V|1N literal 0 HcmV?d00001 diff --git a/tests/__pycache__/burger_test.cpython-314-pytest-9.0.2.pyc b/tests/__pycache__/burger_test.cpython-314-pytest-9.0.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6278a7a93107e126803414f2b08b846e82c282bc GIT binary patch literal 11840 zcmeHN&2JmW6<>ZWhomH0lD}hHq;1J&Z0nPjN8WLJ?z&W+@P z&x}dZ+}T4`&dfKGv`3mGHt#rFVLQd2upY5ocqE|2Cx%CYS!<=0fD)W+vpL5*Y|442 z#alTEnKOGmJ#BF~Z7L1pw&!4vaC(QQp3f?|>%9!)QbMj7`SXYDew45hc?|OqYq80B zhzMOLD@$UvYaSDqB#sB6~S?RV-t;VsGbtnKF;0fjslpjn0Bclt1R z`m`CU&JUXMWwy02F^o~xB(t#T)XTNK%?qtI0*uy6$P zhckNoZHq{qW~_r5y&tN_-$|Y38QF}UX`}dgQ{3q$(KQ1*fEFP(<7cY#25cKOPt8uX zkS~=~s#R&BGF#14&1{2W;4YSoBGiye72wd#ovQvurB<3|tm;guayeg8%lTQ&jH!D5 ziiRzi9nZ4~6f5O(lvb$OtzN0n*}S1@Z&geAa^8TFOwvN>a{{a({(d-QAn14Uk=>b`Z7e{ie$4qxAu?VoLmf_}fZs z_-%<*RN6M=CH8w$+Bf8l*}Mah7VJ(a9ZE8n@F05ICJ?>NZrOfvM6X7l3se!=Z!%=x zY6gpCiaX0pG8`|KXQ(z^)XE0M?~tQh0x1-_6t%evW~ii<5#5I{8o}r|M$bG4QX3!5v&$R&{ENuW3gnnlbdi))lgt|8a3%|m;$L$J0 zIO@Y;EE=(kfUt^&ylrJ1CF2=TGTL2AMn`^nT6H=$6ArCY{LpDPMq4pLy^5kDML`FZ zC~g>vJD&DI1g-8yn&}6$zuse};Cr-E%qddX2iIZH-;fbLk z9T&$^C%95Ud$5*UA>dcC`MCD{k$CutTnl1G}v`mK^9^(6G*B(%n4JpQJ?vHvu*1et60LD$Wa_=xj>G2}4t!Fpk=$CwPoP{8~L>O0q=< zGaG%{t%fF1G_a5phEp{>CCy#TMHtXsvB5(C-3F$ilE}#bbZryoT7WJ%DZt9l9QT-% z9O#^$aMyZ5TACCIbY=!U!zo7V$$QH6jLA?g7-;wVtAmQk#F0+_A>ZtWfb=;8o! zA^3*@=rkn`CTu%J1A-wPlhPE|n#<_JNM$g38lxi^9fjxuLmt`>WTwMG3OWcGrkt-< z!BR6jsWw}=rn!)VH~$?GBNOw2#SnHsj1lOC5=Gw*J&w^RL^^I$A?LY_-^XP9Bf}74 zKI0Yh>#`z*>0dzPmGo;U>328C?j}h$NP2l-l?*fKpK6fQa_1^JaQFW}*LExP8U;U|oXN9=O_4}^S z3*UQ%qK{#P#5cUj6%zGeg`!Vxg%lYeAZG{NLxFmd5g#vuk3 zVBmD2B?4xL?aBmO#BF6**rB~;Aa;Po)ruSrXfV41H-pR85N1Y(xIp81Wcn!%-{poJ zqzEH!gTb;ZxWO>0qs3?A2#1k93`RU75+HKO3nJ?|2^!POp-K;CXB&(~V?$Iej~Muue|a51(u#Pd175TY;S9L7u$r zq6NbpRz)OlwI)SA5Ky%C*401ONJwJ`Ul zqsGrIS_t+>TcUsg0d_Z>NeSfgMRNH~+)JT5ss`QwtnJ$sB6E;;o! zP@K8J;F^&?zvF#!`)B=mg*vRjsnBDX^Lkjk(VRs+n6o?(Zo%TX0%kxi?!n^3CX9fD zjluR4jDQ#z0O0MSH`rNg8#{*L1^|BZ+`Wb0DRXL>#NKxc?qe+Q5;3cQ+X5iq$56og zyRH1rwPxVtif!@uJBMA)CpaB*n-peD@R@B?GitP~Udxwi8pUsx4q)V9g9jE`T~Kgv zhI*hG6T-!e3E@J2jxDj-<8o2vonnqDbWynhF z;R>}<9&*(}g;Ee8m!WYbPE`eZdc<)}9{WCdeu|1P~$) zsJ`I7sI{SIxorZTD26bOUkW9APb1k=C&%i^o|PncfsQT1Vb-xGv3{#q0=^k1htqg| zW#!!>$L!P{)($W6tqBavaJ1#rbfrW#5Wx4S-zN&QXM!G$h41e7QQ(l@Poz4cerg&x z5cWO6;Q+POPizYn%@+(pN+1{VGbWsNl^}4q!OR+g!vSLpZ8$b`1ABs_;4`zR(^Cw| ztd&&_E7IJhT$ml>37?c@6yerlVcb{D3y;)A7odbDom&2aSb!+=y9g6v+-0WO{W`FR zp8vQ+JrKkZkIEfo7YQEq#-KBq1=p-oR+j6rjyDF68*)nQ z$M?_7#vkha2Y-D3Kj{09|M>oY(D#oQnc5d(mrMD=)fC<%iv0TdOD~>Vh`muUQhL5t z(6~>SxdNh~z-Yy)LC=7Av#kCIV=_Y{gM$<`6}P!>ooAxC-|4uDO@jIk-ZG-U#CCpx z5vp{&z?iRUOt~`?$Y*zn0-PT05jH7^cvXjnZjZ(3!l`E=BQ`o=>j80+nGl)!?-x@T-vw3>eOu$`1s0^R?f=0)Y z={Lx)`-iAev01W@;o`g-@)Na~&h5qqhuhfJGE?8}bqa)P-_G>gARy&0jT&S8KCyMHBB-bK%A&IEk}F zhaWcx$tk`%KcRDwhi^m2n-2Fvfk5DMN&3C?Zu@7_zR#osU&}8C0;vZQ#;pFo0Wb@4 A?f?J) literal 0 HcmV?d00001 diff --git a/tests/__pycache__/database_test.cpython-314-pytest-9.0.2.pyc b/tests/__pycache__/database_test.cpython-314-pytest-9.0.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0f98852cfc33551c4ba6f679c6f599ef93f960fe GIT binary patch literal 4583 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 literal 0 HcmV?d00001 diff --git a/tests/bun_test.py b/tests/bun_test.py new file mode 100644 index 000000000..01f4274e4 --- /dev/null +++ b/tests/bun_test.py @@ -0,0 +1,30 @@ +import pytest +from praktikum.bun import Bun + +class TestBun: + + def test_bun_initialization_sets_name_correctly(self): + bun = Bun("black bun", 100) + assert bun.name == "black bun" + + def test_bun_initialization_sets_price_correctly(self): + bun = Bun("black bun", 100) + assert bun.price == 100 + + def test_get_name_returns_correct_name(self): + bun = Bun("white bun", 200) + assert bun.get_name() == "white bun" + + def test_get_price_returns_correct_price(self): + bun = Bun("red bun", 300) + assert bun.get_price() == 300 + + @pytest.mark.parametrize("name, price", [ + ("very long name of a bun", 99.99), + ("", 0), + ("bun with special symbols %$#", -50) + ]) + def test_bun_creation_with_various_parameters(self, 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/burger_test.py b/tests/burger_test.py new file mode 100644 index 000000000..de6025dff --- /dev/null +++ b/tests/burger_test.py @@ -0,0 +1,83 @@ +import pytest +from unittest.mock import Mock +from praktikum.burger import Burger + + +class TestBurger: + + def test_set_buns_success(self): + burger = Burger() + mock_bun = Mock() + + burger.set_buns(mock_bun) + + assert burger.bun == mock_bun + + def test_add_ingredient_success(self): + burger = Burger() + mock_ingredient = Mock() + + burger.add_ingredient(mock_ingredient) + + assert mock_ingredient in burger.ingredients + assert len(burger.ingredients) == 1 + + def test_remove_ingredient_success(self): + burger = Burger() + mock_ingredient = Mock() + burger.ingredients.append(mock_ingredient) + + burger.remove_ingredient(0) + + assert len(burger.ingredients) == 0 + + def test_move_ingredient_success(self): + burger = Burger() + mock_ingredient_1 = Mock() + mock_ingredient_2 = Mock() + burger.ingredients.extend([mock_ingredient_1, mock_ingredient_2]) + + burger.move_ingredient(0, 1) + + assert burger.ingredients[0] == mock_ingredient_2 + assert burger.ingredients[1] == mock_ingredient_1 + + @pytest.mark.parametrize("bun_price, ing_price, expected", [ + (100, 50, 250), + (200, 100, 500), + (0, 0, 0) + ]) + def test_get_price_calculates_correctly(self, bun_price, ing_price, expected): + burger = Burger() + + mock_bun = Mock() + mock_bun.get_price.return_value = bun_price + burger.set_buns(mock_bun) + + mock_ingredient = Mock() + mock_ingredient.get_price.return_value = ing_price + burger.add_ingredient(mock_ingredient) + + assert burger.get_price() == expected + + def test_get_receipt_returns_correct_string(self): + burger = Burger() + + mock_bun = Mock() + mock_bun.get_name.return_value = "black bun" + mock_bun.get_price.return_value = 100 + burger.set_buns(mock_bun) + + + mock_ingredient = Mock() + mock_ingredient.get_type.return_value = "SAUCE" + mock_ingredient.get_name.return_value = "hot sauce" + mock_ingredient.get_price.return_value = 100 + burger.add_ingredient(mock_ingredient) + + receipt = burger.get_receipt() + + assert "black bun" in receipt + assert "sauce" in receipt + assert "hot sauce" in receipt + assert "300" in receipt \ No newline at end of file diff --git a/tests/database_test.py b/tests/database_test.py new file mode 100644 index 000000000..020d46e20 --- /dev/null +++ b/tests/database_test.py @@ -0,0 +1,19 @@ +import pytest +from praktikum.database import Database + +class TestDatabase: + + def test_available_buns_returns_not_empty_list(self): + database = Database() + buns = database.available_buns() + + assert len(buns) == 3 + + assert buns[0].get_name() == "black bun" + + def test_available_ingredients_returns_not_empty_list(self): + database = Database() + ingredients = database.available_ingredients() + + assert len(ingredients) == 6 + assert ingredients[0].get_name() == "hot sauce" \ No newline at end of file diff --git a/tests/ingredient_test.py b/tests/ingredient_test.py new file mode 100644 index 000000000..67beb031c --- /dev/null +++ b/tests/ingredient_test.py @@ -0,0 +1,23 @@ +import pytest +from praktikum.ingredient import Ingredient + +class TestIngredient: + + def test_ingredient_initialization(self): + ingredient = Ingredient("SAUCE", "hot sauce", 100.0) + + assert ingredient.type == "SAUCE" + assert ingredient.name == "hot sauce" + assert ingredient.price == 100.0 + + def test_get_price_returns_correct_price(self): + ingredient = Ingredient("FILLING", "cutlet", 150.0) + assert ingredient.get_price() == 150.0 + + def test_get_name_returns_correct_name(self): + ingredient = Ingredient("SAUCE", "sour cream", 50.0) + assert ingredient.get_name() == "sour cream" + + def test_get_type_returns_correct_type(self): + ingredient = Ingredient("FILLING", "sausage", 200.0) + assert ingredient.get_type() == "FILLING" \ No newline at end of file