From d922f117dd6d962d90070f120cac9f7ca24ba2b0 Mon Sep 17 00:00:00 2001 From: DianaRatnikova Date: Sat, 13 May 2023 18:14:21 +0300 Subject: [PATCH 01/18] Added test_one_gender --- .gitignore | 8 ++++++++ functions/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 148 bytes .../level_1/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 156 bytes .../__pycache__/five_title.cpython-310.pyc | Bin 0 -> 760 bytes .../__pycache__/four_bank_parser.cpython-310.pyc | Bin 0 -> 1572 bytes .../__pycache__/one_gender.cpython-310.pyc | Bin 0 -> 352 bytes .../three_url_builder.cpython-310.pyc | Bin 0 -> 649 bytes .../__pycache__/two_date_parser.cpython-310.pyc | Bin 0 -> 571 bytes .../test_five_title.cpython-310-pytest-7.2.1.pyc | Bin 0 -> 453 bytes ...four_bank_parser.cpython-310-pytest-7.2.1.pyc | Bin 0 -> 529 bytes .../test_one_gender.cpython-310-pytest-7.2.1.pyc | Bin 0 -> 2493 bytes ...hree_url_builder.cpython-310-pytest-7.2.1.pyc | Bin 0 -> 453 bytes ..._two_date_parser.cpython-310-pytest-7.2.1.pyc | Bin 0 -> 473 bytes tests/level_1/test_one_gender.py | 11 ++++++++++- 14 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 functions/__pycache__/__init__.cpython-310.pyc create mode 100644 functions/level_1/__pycache__/__init__.cpython-310.pyc create mode 100644 functions/level_1/__pycache__/five_title.cpython-310.pyc create mode 100644 functions/level_1/__pycache__/four_bank_parser.cpython-310.pyc create mode 100644 functions/level_1/__pycache__/one_gender.cpython-310.pyc create mode 100644 functions/level_1/__pycache__/three_url_builder.cpython-310.pyc create mode 100644 functions/level_1/__pycache__/two_date_parser.cpython-310.pyc create mode 100644 tests/level_1/__pycache__/test_five_title.cpython-310-pytest-7.2.1.pyc create mode 100644 tests/level_1/__pycache__/test_four_bank_parser.cpython-310-pytest-7.2.1.pyc create mode 100644 tests/level_1/__pycache__/test_one_gender.cpython-310-pytest-7.2.1.pyc create mode 100644 tests/level_1/__pycache__/test_three_url_builder.cpython-310-pytest-7.2.1.pyc create mode 100644 tests/level_1/__pycache__/test_two_date_parser.cpython-310-pytest-7.2.1.pyc diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..880de6cb --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ \ No newline at end of file diff --git a/functions/__pycache__/__init__.cpython-310.pyc b/functions/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8498de34cfd6c6776f7f15eb9429cc2f8b7d065c GIT binary patch literal 148 zcmd1j<>g`kf?MMa%ORAaZFliUUErheqM1*e0*kJW=VX!UP0w84x8Nk Rl+v73JCK3JOhAH#0RUR8BV+&o literal 0 HcmV?d00001 diff --git a/functions/level_1/__pycache__/__init__.cpython-310.pyc b/functions/level_1/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b1309f425498e7996c4afb984ec3e92f4760618d GIT binary patch literal 156 zcmd1j<>g`kf?MMa%ORAaZFliUUErheqJ$9VOeTUykSgyd}dx|NqoFs YLFFwDo80`A(wtN~kio@FK!Sw<0HRhVZ~y=R literal 0 HcmV?d00001 diff --git a/functions/level_1/__pycache__/five_title.cpython-310.pyc b/functions/level_1/__pycache__/five_title.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3055bb60e6b17ddc047f19612396c9592c49eebc GIT binary patch literal 760 zcmZuvO>Yx15cSvYCQ(a4El>~=J#gr%5)wTkgh0J<=%u%4rPX#lNvt}X$aYFoIj8b3 zszP$)A0b~k3!^b>UZ9fPDZ=GiTg%#&Mk$7kFT&u^%w7m0b|$r8#iwWAH0@r=IPmig2h6gz{@t@?v?BEi(b;j%>S|6?( Ydk~(+lGcaeNKQ0-jI*~|N46t$1}OT6~vzYqj-|QrU`|Z6|D3UkCG=udXgU#$(8rYOE|>73?L4g*oQcj5yVjw2XagK zGFGADyF_+Wuph{->>cwYlJprFZJ)t?WICcQo~EUe-z^t~%5d)T0K_f2yWl8-h!XZa zQJ&(GPTDt{05bR@chOgA_5ABpOV=qX zI?IhRv;Ae2HAi9N&#Dj)X8ZM0iyr}>Sftu0JzgAXWQX}TXkrr4E^X$nPs3-h@%l6< zf9^wKJV*$Kg!nFgR+^{EnDjt7Zq=bpf^-R(brKp?S&`c5DA0Jj4$(wtw$PwxTqIMg zY+kAl!9oV`hC+f|e8jJ!c?2E@CO$9; zT=>o5LRCh&AT8@ zEZl_0U_N3J1ILCX&O6VPATGpVT%eU*>MCQfa4|5Ym`p6QS%F!TIXR({p3)iHu#LC& zAY!LfdbNT73-^qq={7qn)^-lPj!A=f4!(DPpe}` z4hKfevGEsGY+*tbNduizh{HY*v?xJ?wOYH{K(w`%SMvc~w?JcQpzaPl`HA z3$q8##hKOiP>zS?cz84ze*0+nbi_4QP2WO;sP!E%qfl?d%lQpWjWyICq1i!$8UPhp zy+Fmo-j8wi6EI1Lh|RK0I_OAc)4VV(5A2ZE!&6D4M+tyiZlB^Ouvy&gE12N74MOZg z^eTg5LKc)T4+f-h1gy7Q(ujZ5OvmnPiKVy$Jq?XMZVI|H6}# zU8)YenfKt$n-DvjT`;Qfq4XQguPFXkM&gd(7SuEYra3_n5@2xJge0%gzEtml*~Rw0cspDa(1 zlLMn4<08sa`@XNPixx^W`=j4lb5(e7zA+mGFMw6!z!i08D&JV+$asKOEemTvjc>c$ sAH#H{W!t<$yyN1XImh@3t6YS{c^t&w*^y1i5VD({)m;m>zpD%O1I}bp2LJ#7 literal 0 HcmV?d00001 diff --git a/functions/level_1/__pycache__/three_url_builder.cpython-310.pyc b/functions/level_1/__pycache__/three_url_builder.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..61b88ddb5e0caa75d020b161026eccb56a2b3ab9 GIT binary patch literal 649 zcmYjPO>fgc5S`g|5<6{$gb)Y`dPMjVKGYKm0SOKWiClV%j4b2bCI)|XcO5mAbE1EM zbA)J*{H48e;xG8btOccGy;+ZD=6U9=tAm3vkl7!xc#i@zXail z!3E_m@e1C;SG>Y|KzZ2Fd@b&v+zqx~kDk(>7L{mnIdh6@N4pP?`5&a1 BoDTp1 literal 0 HcmV?d00001 diff --git a/functions/level_1/__pycache__/two_date_parser.cpython-310.pyc b/functions/level_1/__pycache__/two_date_parser.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8b0a29e3763beaf74ab7960320a3c1fd3ef9764f GIT binary patch literal 571 zcmYjNJ&)8d5cT*Y=UwR}I6f*$nlwnzAe|6GLZZ9|swh$v#a=c`5=ZugW2N2dXleKZ z?3Vl`w^a8Rj)rlT;>LQ<_M4GC^W6FQl2OE8mH7#b{YjVmk?7J+ufsZUdyQNBY6}73+Rsns~*!HJW<}FTsXm~35ABuKOcuxqQh>&gI zz>jRtcl6&E?jPfuo|X z)K#I;_0D^DeM^I~9HKP!Hr&BwzC1OX+DszasL)X|E|O$yhjmmmNjuUub}dG^wY86` zcLT1YNTs43FjqcJ=0&0fQK8pv^2vl^*|)=VGUPY&7nHpF&|H=sy)%qkT)W{_i8f$6 ze6H*_>zg*%P_Cw-!PX6d3cuQ}dRgMNt7d1%+6U`jjNAC6asB9mo%Px4m3O_QFTzuz xC1`j67hJ+=WsrgV>mO4p7d}}Z1$8(Jb7S}DQOfE!y)#p1-zMKedRMb&;vdnAmR0}& literal 0 HcmV?d00001 diff --git a/tests/level_1/__pycache__/test_five_title.cpython-310-pytest-7.2.1.pyc b/tests/level_1/__pycache__/test_five_title.cpython-310-pytest-7.2.1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..90ce3d2b9ab71ba4339e7828d4a97f3c39fe321e GIT binary patch literal 453 zcmZ8dJx{|h5Vi9`(yEnM7?7BevP7aILa2hh3tLplO5}B5oJN3PiOVc7al)x21s!TohXJ9aj*6K2lR%!; zNs-__FS;65Yd>v z9;(~5gi@=vxBEsd))tHvYRBLObR`U!p=0pU0VKN_5Zj6aFe|KtyzSkE=dk~VysYs9 zM^wjHvWZJKosjstakC}bKB7y8>i9-p8UxyjM&%lwHIC&b$CgX}dQ&71lBF)Lwwxvx^%NDS!sMN5s4G|5}-RP-@wc-d1c}k zm^i0E3n%%V-?Q)T>B`|SVifjOsu#-djvPjZ$dnFF2ozI1XM(r6Q+OT5S>cN=cQ2j1 zR|Fy`LJ<~y(Jvwqk?tw~nTaFC7i`r1pdM^K@@;sP==)h>l#Lbz-U4E>0UKODRiF{< zag`VZnQ2H%2|F=$wTHop%;=y`pcwV%^EYOC#P;xclU^)yNQ|zw^Gbd3AG0e8a~KcGMx>dZ-?KQnuINQv1i?cX44JOIoL1Bf(_g;QXrng~PyGi9$)hDms`{q@W zpwnqG_}O3D!qgc14Lju@jIkSVs1;}g6Wn7Kr?WP$XpFP5ZdEzXXr3{ySv9aLLjRCi zb-~|YX7x|Fj@>eO(%N@@;Y!CF9lHY@%zs@l8gRS>hkCyX%kUW7#avWkP3UnYWD$#a zq}{E=dZb6}Z7r@wRrPVmPc;G7kP8FHhuTyZwXkxkPuU?;Cd^kuHs!JhmVuVfMNQNT z;yMx$5-%Wu77%sOD2P{y;6S`i1Xw^cM6)1viO_&>hyV+SCfWKFycOg-MB-|PG@Gy1 z`pkHY#fE5$PGpQY*tM_*L_Mla`Ca}2$gQ(jk0BS*p_1vqQyosY>Hu9(VruzZ(r{ptVIoIeyQ7w(ES{mhQfr_cd^_iWM zRZOOnrdGjoS*Mx0fjEA^I5M4n!Z_yY^b1m0GZ5|XNIh6T;Oj4*29NBkw=C_=*Wh@?(#MYHTE@`Dv&rviJ3A&n zzWLO($0`5EL9>d@IyRffT}LTbhP2?esc>++@ZfsNJ-(a~esD$^E9+|; z>uY&78+kThJT#lNbJ=V`&yY39N7k{yR~ZJehRp^xTgMklG4??wONVTh%||?duSub}s%ig!YVsZguxp#ALeb;jx>4Q$U z1Ak=~)f)NxkcKMM#0QP!e8_fy?EDXA{*qTF{sI$s zF3?JxOXo#)8ZKD3|H6h9Ld g|Ax~vg`Z*n@ZFAPbm?W=%Td7<{h0r)Gd2&u0YU$FegFUf literal 0 HcmV?d00001 diff --git a/tests/level_1/__pycache__/test_two_date_parser.cpython-310-pytest-7.2.1.pyc b/tests/level_1/__pycache__/test_two_date_parser.cpython-310-pytest-7.2.1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..16775ad44b5f4580d296d2a4f983a7b69e9b6fe2 GIT binary patch literal 473 zcmZuty-ve05Vn()q*XgIz{Y}42zC(=vl|t*v#!zxbkPm&)Hkw! zsd)m%|39I6gf1Vu?7nXV?lEq<=mxe!Ck%PuprSH3*EXsxG;DNZ!Hst*m;UA^*c|p& qx;$I=ZS6Zu@x!(FLsNSWfx-R&-;rnNvMZ^0FW}l=E?n)LOye!PoqzNI literal 0 HcmV?d00001 diff --git a/tests/level_1/test_one_gender.py b/tests/level_1/test_one_gender.py index 31d0bc7f..d097bf03 100644 --- a/tests/level_1/test_one_gender.py +++ b/tests/level_1/test_one_gender.py @@ -2,4 +2,13 @@ def test_genderalize(): - pass + verb_male = "VM" + verb_female="VF" + gender_male = "male" + gender_else = "female" + assert genderalize(verb_male, verb_female, gender_male) == verb_male + assert genderalize(verb_male, verb_female, gender_else) == verb_female + assert not genderalize(verb_male, verb_female, gender_else) == verb_male + assert not genderalize(verb_male, verb_female, gender_male) == verb_female + assert genderalize(verb_male, verb_female, '254654') == verb_female + \ No newline at end of file From 9df0f474ae91fdd3552fdca68e76fed2d0999896 Mon Sep 17 00:00:00 2001 From: DianaRatnikova Date: Sat, 13 May 2023 18:20:49 +0300 Subject: [PATCH 02/18] Added test_one_gender_type --- ...st_one_gender.cpython-310-pytest-7.2.1.pyc | Bin 2493 -> 4057 bytes tests/level_1/test_one_gender.py | 9 ++++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/tests/level_1/__pycache__/test_one_gender.cpython-310-pytest-7.2.1.pyc b/tests/level_1/__pycache__/test_one_gender.cpython-310-pytest-7.2.1.pyc index af0235f54b9fc8d71e3b7743a6cb17f320b5457d..aa82994e564eaa89a97054fa7f7ada70c5e2ae53 100644 GIT binary patch literal 4057 zcmbVOOK;p%6!!JZcs!m*9&P%70x8g{t{}=x9!)AzN-JQ2C`ddOqY5+4b=nc0ne<*K zCBegjf`p0?`2m$k7A(qw4GWfRSb_vdY`j4{RMag<1r@2{oO5l*nVHf;qB%bH{e12@ zpYJ{2?Uc)w27lhC4tFw|_6y#m|8%%H2|sxp4A(gGv^t}!-pc42(^}bjj^T*z8LfOh z4}OMc-_`0S&v65;1FPY&&G=fN1uW1nXS&%S8)$Fn-CU59@B3_1=in_dZs7AJeJjiJer7YfrLAhx zhVh)QZ80$co`GJQ@jN#Z#BoFfhb_=2<$cu!;*;Z*Zo~?M**rRm~UgG7zXfp8gejX5Jkl$jL**idcR_kWFPz&*p ziFja&hYcpnfKD^PdYJeOXC@{-$C(E(@g*XNiLVebfQfGjflT~Bh?t2=Qr}O6$N=Ix zA;1GBD&!**+pOLsB*yxiM&nrjmx*Xal(eoHn83%!5H-z5&&mMA9ANSiNKn)OU5o4iGt0dtDQ0nUgCxBAlzn7n6r2rb&Hhm93e@HRo znPZNIlGRd(R!bqhT42TGx@OPLiB?R+lP;$qa+;@}bpv^Pjd?^oeTR7rlad1b>|HKm??phI7 z7VNHKPz;c(Qc!}7zJR#MQVIIZ2#)OBU4U>f3t~wZ9J3g}k}d_Jh$UTILev13bom~k zkR@GQAymW?`PLSrYcai_AcM`+Tc4!g;-l1E%6u2!9h9lN3|cQ1te0Z9#5HKyV`oDB z)#u^&OqgvoJU29!T)bXmxAcVto2{QZbYyvL#+KGwku$z9j^3m#kKnax%g5+JEq11C zXm4=kA@M*$% zTjKD162bMPyFMBr+MNVdH)=D}voq6iHM4Ow;M}#E=^fR~!JQ#WP>(31K{>-DrqRrz znOh%9i$%IZGYUYWR-( z=CaplH+&eeD+1M5;CVn4(Tsqp7jagV_H_DYR^6yLb1FG?Q=P0+s_LccuC( ziawLRIhKw-e@zn)LoT;YEgnDXxed_8nn z({>$o=9pMs3x|o})EOiTk>vp}S*HGPGfTV8O7J@x{VJMx6aamv6=aD{D@QZ`ep>Na zkiE?CwBqZ~PmI8jTd0@NO$<7 zO5V7FZ}|AeM>vWeWDcjAt0talc!duIdFnu>k3HN9%s$03pc5CM6Bpw19(HCp+gZt3 zXB6H<{_xZ{f+NJ=Hap)?7FhfDltsi2`T;0pii4jKiCQgwqtSj2{vZTa^cNupaR41T z>aj)Yu|=w|6jfMCRan4N9O<&f$GTFR9AiDlVrgMrGM|M!<&A z1a3V62YpQ#X!2m75jRjfpqnaL0jH-C59raLG^99bp;6MKdUQ&3RNM8}mR)MPJv}eX zNMG1yPa79QnBFLwU1)Zr83VJkp~LKTZ0I$?VC)_wv>*hNL;AZuZt#|;;V8IdN zIDQaJS}EqmL->SrB~qEG^!N^0nG+B8f@^7TjnqV$M*ta)^=g8H>jR6EXtssnq;{R% zWa0=sw5`yL#hB_0_d80yCzSAkq)rI;l4$xM#mS>EA3YIarq+KZ^Zaw5{KiEX)3 iyrS~ZjH#?q4F#ocKGEv%70*3^A6()#I;@$QQt2PmX*MeW delta 285 zcmca9zgL(qpO=@50SMw(#HVO7P2`hdG@7Vw#L5`Vpvk&1YYVG*6jPWl5W7XO;qRDxSBdIhqrzA74xQKVM2fr~R_v9LWb$yUzkuWMD b0_5J}u*uC&Da}c>V+8VwK~7R*;9&*;u?0pR diff --git a/tests/level_1/test_one_gender.py b/tests/level_1/test_one_gender.py index d097bf03..44373904 100644 --- a/tests/level_1/test_one_gender.py +++ b/tests/level_1/test_one_gender.py @@ -11,4 +11,11 @@ def test_genderalize(): assert not genderalize(verb_male, verb_female, gender_else) == verb_male assert not genderalize(verb_male, verb_female, gender_male) == verb_female assert genderalize(verb_male, verb_female, '254654') == verb_female - \ No newline at end of file + + +def test_genderalize_type(): + verb_male = "VM" + verb_female="VF" + gender_male = "male" + gender_else = "female" + assert type(genderalize(verb_male, verb_female, gender_male)) == str \ No newline at end of file From 2c543279f92ea59b8f74dbf03cc1e72715ae70fb Mon Sep 17 00:00:00 2001 From: DianaRatnikova Date: Sun, 14 May 2023 12:47:06 +0300 Subject: [PATCH 03/18] Added test_three --- ...st_one_gender.cpython-310-pytest-7.2.1.pyc | Bin 4057 -> 3286 bytes ...e_url_builder.cpython-310-pytest-7.2.1.pyc | Bin 453 -> 1486 bytes ...o_date_parser.cpython-310-pytest-7.2.1.pyc | Bin 473 -> 4410 bytes tests/level_1/test_three_url_builder.py | 4 +++- tests/level_1/test_two_date_parser.py | 5 ++++- 5 files changed, 7 insertions(+), 2 deletions(-) diff --git a/tests/level_1/__pycache__/test_one_gender.cpython-310-pytest-7.2.1.pyc b/tests/level_1/__pycache__/test_one_gender.cpython-310-pytest-7.2.1.pyc index aa82994e564eaa89a97054fa7f7ada70c5e2ae53..5f27847f1a8c0ef5c720a25fe944fcaa264d20a3 100644 GIT binary patch delta 329 zcmca9e@&7vpO=@50SLCOicfjPw2|)&8)MYw+iXsZi~^J8IJ6j}CVO%uFe*%5#Zj-I z1XPy{QVau}Kn6DuI|FfX5aYzza+}jRjTu=Pf*CXgCYSSU6%Yi<6bXR{VGtoQ*@jn2 zSd+Vm3B*$d5h@@;baEh{TD>M`5y-?Mkb{aq<`xNn2sscT4OGzzC%*m`ujW4MzNClZ$%mXA? z7$NWWVPgO>BLNfQ``k8!AC<6m&+qQN`|h57emnYZEVFLgoZ;2j ztBPv!dFE9bI{WX_O8~jBpwB=jysodnc(|vxi)Ybyhs;M;28oI73N~*hx$~s3zh;!7 zoed11DMNuuY$XFtWCN}=#qTD9luB)bH{d6CHG#YaB1cLs5otpAQ@iPiJ!IZ%)cbrE zfqa8ZC)Nbikt-tt!Mn~6vB1ElVM_&E3?H1V-CPr6l(vs4?U*t_(j>uDxMNPWkoNV>DvXNNru-TlGujUcJ=Yxg-mJn&*1;xf^nv z7Kvd3S!dXHJ-@obEvrdM_S<1_$>KSY#jJE68aaba+R<{h;3P>rGGQ a!>d*qM#7eL?j-$^v7={|gQdck)~TO|h3>il diff --git a/tests/level_1/__pycache__/test_three_url_builder.cpython-310-pytest-7.2.1.pyc b/tests/level_1/__pycache__/test_three_url_builder.cpython-310-pytest-7.2.1.pyc index bfd17f39dbce9fce0ca8dfdc8311b1f3bc4ad3e6..f1554143c521e76fbcda96ec3491f97fabfe7d82 100644 GIT binary patch literal 1486 zcmaJ>&2HO95Z>jVNJ@5`qzKZUoCXcDNTHZYY}Y~6rU-J#C5QG#1Rxmg$`(wK!Y-xO zDtW1U=&4WOLv-w=FOc`hVUO*puaHw`ma;*$X&0E;`P=39&5$g%wn75ylRpyvkP`AI zI_+hF^Ato4KykupMq+AqYie7BlBpBB6f;)lO*?T1Y@0hjli26AnF0+-IA=R+yl!)E2oeLyP_*)lyV9$vV& zNbT`1?^WJ}g54=QQ0-Tp6+NdvK?598QxFTp261bLZ?(}@fgo zZ74=HK=l~a0ji_rwNxn~OLIDkn2Md*Sro+%;EtAeP;Wr``gCZh-CGPBZglw!5gcBE z1LJ?dH7NHtP)5K)hsUB!W~of4ih0rl(6WQd2ZccQQ5|Xox3`HIxSQ~R1%|8+pU%!o z0gX8UCoa9P-SpgMF-%iv?F^7*0OOxZQc%5cuQaVUf zIu;n#+uxX8O^W=vl!eqclW`%ZX_<&0W?7oUJd2$5WEU{UU3^T_+eo*ZM{Q@nUG_yg zbJ*Z)?vM6jgL>@^+Jy&g=V;?pwBbGajmTX<_Ws4_$*WAHGKV&u6#3v4Hfxd}0}CNX z6D5?1C@5NpEQySllqXV{m(}!+3)!EY>21^JtG|>3*DIV|NPnmAsQeU67HI#n+wukk z^v6jvpMKLF=viNi@8zTvI=Bky&N?P{;7ojXJkLkiUe#Zt>i-LnnZ9|Z;n`Am@Ui}v T(}K@4@fG|qi9)FNNYDNohLE(R delta 172 zcmX@deUzCmpO=@50SIo*k57qan8;V62I4USu`>`CvjB+{hF}IwM!%H|Ma)1Rl$gAi zC0UgT$Y)_JVg*u~oVPfVN;7jxGV_XW@i-Jz#>04%9a!~wZgByHN>YnU;uDJ|m#}K< fgY+Pq2jYS(yTxIXo1apelWGTY1K55w1|DVrR30Rj diff --git a/tests/level_1/__pycache__/test_two_date_parser.cpython-310-pytest-7.2.1.pyc b/tests/level_1/__pycache__/test_two_date_parser.cpython-310-pytest-7.2.1.pyc index 16775ad44b5f4580d296d2a4f983a7b69e9b6fe2..3331037b3b95b0c111971d8576ff70f6d0e1a800 100644 GIT binary patch literal 4410 zcmeHKON$&;6s}iyS69EL=RK3CGseUehGx2}dmh0NMMMM%h`T0Gbf#)DJ$82uRW*qn zs}wT%0RwJCB4ic{BD(M|xDmmf8_Sir8W3IR#w>#0Jyq3HHAWLML^n2^bH8)$J?GrV zcQ4gesibiDefy(s3k)d{ey*J( z%=hHBY>0+*i)-f%{!LEJ93q~(r1HVkhSlG(98)(suIYCBroL%g{SDR~|4soEAumH5 zMMh!XM**LAIgj)BJ;4`Tew+72Xu+2}XuJsJMImxo{RlIYS;7;9bA%@o zS-*lmoX6K}L}DIO6d_Z@G~qnq8Nv$TS;7UvbBV0Kz#nG)jg2_UO5=+MJhi2$Ek|u7 zYR96s8nxpGyfJ?}_c1@s`IE*ez*`Y~NG12Qn2=zb2x7KNfWY zw(bkg=}~6EUOblh1dK)I*Akg8r86_jdsx;^N35NR+F7u7;kHcdoii4Vr@c91?|j7G z`NzRtFnAg=%R2^0E7uLh>rWS`V6vfmL6y{+la;~aQE&hs8e9Bp08;t{sgI7jQpxD_O zIe}v5sCGS3yB^h1{F-YSogr#rzO|v*u@ygDLIZON=f_Z#tub0WL$MR9jYa~+PV7bG z1d5$lDXs5V-M%$&x8lOuXl)Edk=kf&48_jT+O(s!X;@oWn4!2Zw(fp~Y3bp5H4KRk z4{_LyK*Yh?>~oc&22)L@mYG@&AVa$oh}f<` zd2wgxnvSc(U)47{y`FBHJ2v~**0If?h;IGLZnx)l2TqXfSs392v%0fo?e+{Bs$cC{ zS2{g?(CM2&UUxd1Cd&|%U!q&kwFa+%^mZ_zZ(4T0XmQ&Vh(rVOGmX@+wDQhKZX-g?9Rb5L}*HYEBRP|;mOS6$& zUQ{mJED(Se8(FE8cyAIL(M&A?&rLEeopbF|&VCl$xclnH#mhY~VgL?oS%b!9#)R(R zDvrpsH@c4LkjKHGYi3Wclcl@YE&4aFgCTh5YCFSVo+xzRzxomiIg?QL_IiFR&-t$wHmuWWFf;37SR7UH||9 delta 188 zcmdm`bd#AcpO=@50SIo*k54INn8+u?Xf#nOh#p6&=84u%4UM`@| wbBhZoRFYa;5}#N!`L=+jK1dI;c_1#xvRfQBx%nxjIjMFaH-PO|W8h&10Kp_EN&o-= diff --git a/tests/level_1/test_three_url_builder.py b/tests/level_1/test_three_url_builder.py index bb7b54d2..7cde2673 100644 --- a/tests/level_1/test_three_url_builder.py +++ b/tests/level_1/test_three_url_builder.py @@ -2,4 +2,6 @@ def test_build_url(): - pass + get_params = {'k': 'k_str', 'v': 'v_str'} + assert build_url('host_name', 'relative_url') == 'host_name/relative_url' + assert build_url('str1', 'relative_url', get_params) == 'str1/relative_url?k=k_str&v=v_str' diff --git a/tests/level_1/test_two_date_parser.py b/tests/level_1/test_two_date_parser.py index b0247049..bf2ec012 100644 --- a/tests/level_1/test_two_date_parser.py +++ b/tests/level_1/test_two_date_parser.py @@ -1,5 +1,8 @@ from functions.level_1.two_date_parser import compose_datetime_from - +import datetime def test_compose_datetime_from(): + assert compose_datetime_from("2023,12,15", "19:55") == datetime.datetime(datetime.date.today().year,datetime.date.today().month,datetime.date.today().day,19,55) + assert compose_datetime_from("tomorrow", "19:55") == datetime.datetime(datetime.date.today().year,datetime.date.today().month,datetime.date.today().day+1,19,55) + assert compose_datetime_from("202yhbmj5", "19:33") == datetime.datetime(datetime.date.today().year,datetime.date.today().month,datetime.date.today().day,19,33) pass From 6c3e5f1a4f25564437e81d0cc04782681743664f Mon Sep 17 00:00:00 2001 From: DianaRatnikova Date: Sun, 14 May 2023 15:25:00 +0300 Subject: [PATCH 04/18] Added test_four --- ...r_bank_parser.cpython-310-pytest-7.2.1.pyc | Bin 529 -> 2003 bytes ...e_url_builder.cpython-310-pytest-7.2.1.pyc | Bin 1486 -> 1486 bytes tests/level_1/test_four_bank_parser.py | 35 ++++++++++++++++++ 3 files changed, 35 insertions(+) diff --git a/tests/level_1/__pycache__/test_four_bank_parser.cpython-310-pytest-7.2.1.pyc b/tests/level_1/__pycache__/test_four_bank_parser.cpython-310-pytest-7.2.1.pyc index 19d8ba4760bcda65fe75c04c97a7ba2f6dcfad3c..37c8951b0206dd2accf93fefb82d365f42d17d7d 100644 GIT binary patch literal 2003 zcmZ`)OK%)S5bo}s*_oYv__2N_JXR5wGLp60T{}<3Q3#2YOMD4jMn=PAdu)$0kEOde zj+dSb4uTvwa1Kb`3sS@n;KC2!!iD2VT!4%35r+s7s%O^5AknL?uCDsJrmCx|H>uYx z1mlmNKcamdq2JWz>>#kY1(Q2KD55w-4$fB+l?cKp(i|Nt4GGJU;TVzWm{G;4M3!Ua zavWBjYJQ^T)L<=z^{C-AK&MgtDRQPLet_)qG1y0&ww9Tfz2_}DuAqJd+ug}1b z6jLoFR8LD1(efht0xcqHEFy^~E19e%SWTFfMU-mPN_Bzu&=DS^BQi#5S(KzEby+?v zr3S60Cat9vp-EF#4oPa!I!GF4Bvon2>JCY3QajRVd5pJ6iqg8Q!_FLII<=hd_H=5{ zX*%;I+0ve&6sIIDiSm&l5#S8K%`T%cP8*-2ZA_bV?x`tjchF&Rek%9Sl=wMBB*}C1 zO^MErNjfbmvLUBrNlqVX>5QA6$Hk2#_Sh@Wxal5rL$?1 zBB-vnH%CUd+iS12-f_(JPN%cpTU#HQ-L-b-QoFY{(z{o#_tu=sgWY7{#!yKkvf6ru zTO+IG4aIIhp?=HJ_jbkho}=IQ_^#(@oi3cvKj1#=I-0UqY~X_gR(Ru?+G7- zfjIu__3PJtr8*g^v&t}=F!==_J4m7r>nWCa4{A|$%x7d7JtB-q{1y3_Kpf=wPcX9y zhO42+g-e5-KyaI6q}|DI{{?nT=Iy(E=$;qo)xG}ptd=_#_V$mLPPOc{OGg zmwVg3vXC|2&7BXD_%34!%bJid7I{Lwg`pRF0yOr5W2idd!>A|-64_o;=Fkf7l+I2ZU2qU!uP7f)GOSqGT8g zM^ou2zLOhN&#+TfQ5Sc=c6M{A*c5SGIlH;Wrj;jCip&7Xmj18e4AAl(5DlOFR*8li zxJEQsEnHBOG)Mz4;5nE}xIumg9kbz>J)M~+31KY|WXo=m!gk>?Tx*;8`z#QCRyh@A z#ze;6f-}yA?P1(k8Q|?nPqqKsPI)mEWp!FEY!ME#^XjW*aWH@uW$I1izlNOT b*I?d=5;_e1o9aQ~>L0v^Ol;yBu9f} Date: Sun, 14 May 2023 15:27:28 +0300 Subject: [PATCH 05/18] Added type check for test_four --- ...r_bank_parser.cpython-310-pytest-7.2.1.pyc | Bin 2003 -> 2551 bytes tests/level_1/test_four_bank_parser.py | 5 +++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/level_1/__pycache__/test_four_bank_parser.cpython-310-pytest-7.2.1.pyc b/tests/level_1/__pycache__/test_four_bank_parser.cpython-310-pytest-7.2.1.pyc index 37c8951b0206dd2accf93fefb82d365f42d17d7d..34baacb7e929153ee7c3070f2ebbd3abe299dcab 100644 GIT binary patch delta 692 zcmY*X&ubGw6yDivvUZbgqLJNADr8%?&;cviq-`u%5Tpn7=s^ice=r*f)^wSfN>g_U zn472SUInvfPvSozc<@jUvVVZ|C|ACAvh%&~z3+Q(W|=)J|E`*crfDefygl0` zAKsYX$_tQ)N)8tDavy*GLL+WOdQ=*#vBj&AHAb-=*?jJq8at75ir8yjoRo+aIXy%g zLg}fgMqF-A=2PW`0*(ea%DkGQQ$#)B6~PCHxWt)pwWQ0Cu8wp82Ul`WEmmO4w$LM8 z>i3gf)fz$Zu`HHk@rh`PfJ0MVaw|nL+9@K7Gg~py#ph(#v2X|uU5jMtoo*>{ja(;Q zRO=()b$%HfSE71~#^@Cyil)RCEIZa6qC8aa@~3n499^5=J`RHc3wCJ0jt)4^XSs0L z6yRsc56v5)lSj)d;jn|5@p4MsEmyE6W-B7D|C4}BC4VZlFuNhWZOpI{!|QHcG;d;- zX?z$4RD(OiI<+BCM?ejr3kPTm@YV%(1ZT8d!qz*a&-b|B{4Z-Ilfq53k$f$*YkyEn(GXn~^DEh< p{iFT??++OD5?gPhrR0Hr+Yx^tZ2)8i_^STkDJ_V~YVuxR`wO6I!%_eM delta 164 zcmew^e3_p&pO=@50SLZbN=Qkb$a{rf49MXCVrC#N{=&HN!zV_z6oz01P5I3dEH4M*QkZPbY0M}$IiJ%;LL4YrBn>2Pv6WO7Wagz8v4KQ1Cm-fC F0RU;HERg^J diff --git a/tests/level_1/test_four_bank_parser.py b/tests/level_1/test_four_bank_parser.py index 4499f3a9..b9190865 100644 --- a/tests/level_1/test_four_bank_parser.py +++ b/tests/level_1/test_four_bank_parser.py @@ -34,7 +34,8 @@ def test_parse_ineco_expense(): card=[c for c in cards if c.last_digits == raw_card[-4:]][0] spent_at=datetime.datetime.strptime(f'{raw_date} {raw_time}', '%d.%m.%y %H:%M') - Expense1 = Expense(amount, card, spend_in, spent_at) + Expense_result = Expense(amount, card, spend_in, spent_at) - assert parse_ineco_expense(sms, cards) == Expense1 + assert parse_ineco_expense(sms, cards) == Expense_result + assert type(parse_ineco_expense(sms, cards)) == Expense pass From e768d2eec2e73f2f804f1f4c7560ad492f19a6e8 Mon Sep 17 00:00:00 2001 From: Diana Ratnikova <112802430+DianaRatnikova@users.noreply.github.com> Date: Tue, 16 May 2023 22:48:50 +0300 Subject: [PATCH 06/18] Delete tests/level_1/__pycache__ directory --- .../test_five_title.cpython-310-pytest-7.2.1.pyc | Bin 453 -> 0 bytes ...four_bank_parser.cpython-310-pytest-7.2.1.pyc | Bin 2551 -> 0 bytes .../test_one_gender.cpython-310-pytest-7.2.1.pyc | Bin 3286 -> 0 bytes ...hree_url_builder.cpython-310-pytest-7.2.1.pyc | Bin 1486 -> 0 bytes ..._two_date_parser.cpython-310-pytest-7.2.1.pyc | Bin 4410 -> 0 bytes 5 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 tests/level_1/__pycache__/test_five_title.cpython-310-pytest-7.2.1.pyc delete mode 100644 tests/level_1/__pycache__/test_four_bank_parser.cpython-310-pytest-7.2.1.pyc delete mode 100644 tests/level_1/__pycache__/test_one_gender.cpython-310-pytest-7.2.1.pyc delete mode 100644 tests/level_1/__pycache__/test_three_url_builder.cpython-310-pytest-7.2.1.pyc delete mode 100644 tests/level_1/__pycache__/test_two_date_parser.cpython-310-pytest-7.2.1.pyc diff --git a/tests/level_1/__pycache__/test_five_title.cpython-310-pytest-7.2.1.pyc b/tests/level_1/__pycache__/test_five_title.cpython-310-pytest-7.2.1.pyc deleted file mode 100644 index 90ce3d2b9ab71ba4339e7828d4a97f3c39fe321e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 453 zcmZ8dJx{|h5Vi9`(yEnM7?7BevP7aILa2hh3tLplO5}B5oJN3PiOVc7al)x21s!TohXJ9aj*6K2lR%!; zNs-__FS;65Yd>v z9;(~5gi@=vxBEsd))tHvYRBLObR`U!p=0pU0VKN_5Zj6aFe|KtyzSkE=dk~VysYs9 zM^wjHvWZJKosjstakC}bKB7y8>i9-p8UxyjM&%lwHIC&b$CgX}dQ&71lBF)LwwTMA z&CC=CJYWCz9{Vv%$e-AmehlbbfmgU77-2LZF4e6OW(-0}Xu4U7Ge(dLE!PTd*ADY; zJ}kHeJx+t7ThuE`ZVB2AQxbQo@zTb^HemdyTq;SIvefH*X5cplRbod+x1wG8bD^@@< z8UxqQfk#Z485=AcXB1(%D*2353A3t1(MfAe+6=Tdy!k4LO;(7rlI)TLIwl9kn8Z1m zQKrhO+R7LzPiw7mPq$*&y zisM_x*km<1b5I_W4~Y04=4WMLO!<$X&7sz(tj6j`h@TLlfFu7I5vT#8&X$i5zi31W z5Wi{!XnzRfO?c#%ENUQmlY3i>fQ4~PYIY)tp* zN06f?i5KF^k&jEVqL%h)Tvb(>2VZNdcAttbU=4a(18+~@jP|y1xIZ9HAOl$$)BBXK zAP3ZeL*q$I0M*tghy|cFHR_qT0O~5DFdl$<15wY$22k&46vPBj?`qU^e3r&kk5wT~ zC#QG{TqW~*)jdR@4m?k?Q{P$;pE`Syt*E+=)$$}(%Tuvhf_PQq8Y6HUS8t50R;%4y zZ>+fX#@gE2Mtgl@WVhCvYiFA6^-;F9d7-`T=5OvqgH9iA-pDxJct{(gLc<%%oo>YZ zhMV2pkz2cN_PQr_Jl9-n!HVo#!sjj5M0;tc%_&^X2Y5f>8rz|FPYi;deDLV;0NrD^7vfCW^c}6H`TZ;qGFE`NXJ`I|ert{mOXX06&Ze|A3hrV7M4~LUveh zyC;QXBt~;Bq1_*-Yjf{zrwi5Q2lDV*_rk5f_jrG>CwHQL`D?De;y%=o<96TZ+R z0ze=5L8qmAovmodJGY@`b#!Io&B0z$xES<=>_*|>GBOp&{S+CUMuRErzXhy$F^IZe zATEP)xNuZnWzE&Fxw_X_y>?;sxoYmRsc+m<6v z>w&f-oI>2Vlun;@1cwSwl8gvNl0~0IQl6C64)?_{kWMzqfFTqu6m1v828y$zvM1o| zq_%v{5jc1b*u0HfZXU7$G8eChQ9@W%_IVPCo?=1#hgHn^mb=z4kt>u&K$=SGf)c)^=SuiWkf-vdf@3djkGA$V8c(xqp}Uq@U!Eh7xNs#<3Q- zr?!UuE}o`nPU=YW=@Oz7GfmN>)Z_S1hM&M)b8s`DEOD%cnpheI9SSXUDC~=2#D;-? S8H=dE|3GbGQ=67(Df2HWGSBh= diff --git a/tests/level_1/__pycache__/test_one_gender.cpython-310-pytest-7.2.1.pyc b/tests/level_1/__pycache__/test_one_gender.cpython-310-pytest-7.2.1.pyc deleted file mode 100644 index 5f27847f1a8c0ef5c720a25fe944fcaa264d20a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3286 zcmbVO&2QX96!&<&Ua$8f=_f4|NP(gnL6pr`lZuqm0vALIdDOOBNvVw;K0Qfgg{7elwmp+gV~tz zQmk_$E`?g8MJ&> zVPYCI6SY3$6>jB-(};)=@f0FZ1BAt^IpTRjFhIOS2+#mg<#vv^NC+Je9w9&jgiX4! z1J-inRYKxy>ol6pR=a5))?$;_c_T8r4D?D^0fZG*cGz|HF3@ghu@S>sh=)?j15-R~ zG1&lgkqI`!#Ai4&G4VOhJcfy{5J60QjfgQ!d`k#q;(J15Of>WL{YZ!sAbuePXuw31 zbYxJp0q76OW;S!i(L^3C z)iheF#b|+uDaY1G=A;pm@}$c-uw3M6ByPZuZ_tmFr|-~@u{`~ND2y5K_Gd)h9Y0{} zcS0$i{v=e!Q=Uy*x-1h4vS>>eDvL%lYL|Om9?Na&;`kn$|A{9)8QUpWHe^>Vszu0E zJ*tC8UxHm^sSb5!ACBzJE})hETT_I;b@luQHT!WH*=t82u_5wW5B}UH+ z{KQ=K@qLTk)>l>>wt4Qv$>GL=Bki|SWol&#wHZgA#COY)k5k8Nrp!6gvE!)~g*)X) zf#*w7UH8Q$m*%LEswT>g3L0_Dqy(l>v{1~Vm}`SrKyhlb=}GB}kS1JqBz7+67W_c^ zoBLBlf3S-(XBXxd7v{6oEM}_#Ol0o(DmOM243F_VZ><) zJbeY;2Sg3UB#3qmXH{;`7aNPJq3kTR$vM?%&8U|8s5PS;PsdtC8*@p)`a-dBs%U-r zmL{gam)qw$r!NM+C;GtCl|g^@BC^%(UxsD)qSKYWq#g;Nbw6-h)N%)X-&J>x>ET8) zNemb6AO={L$3PfN{qHbayTj`6JeEF9O*{mEJ+~F)3R$At%FFDZZz~~-jOz?kQsnG8=CY0%!3Fp=PmpEk|4>1m0`b38AWRjdVE8>0O2@RL{S-fnS99 z#YZ@b8h8%3nwu8hX?T-QL=~z)R){s+j;y;*ER!nG zii05bCO*vG#>Ag>YRdM*hilZp*MR6Yr3{|KYV{%nIfa4E>C??sm zxF36p2|7pVq{ML;Ob(4Eg^LTv{FhkJb~ED{O`L!Z$4;!Q5|O9LQCHQjX_fU*Po{-` zO>{%3LwQ$HN&9G>?PIHJ{SKBMIh`i#^lq*yW-#q&#)8LF*hg+#Pxc0UE%47k`e_nl L<5A5j)$4x)#87Vt diff --git a/tests/level_1/__pycache__/test_three_url_builder.cpython-310-pytest-7.2.1.pyc b/tests/level_1/__pycache__/test_three_url_builder.cpython-310-pytest-7.2.1.pyc deleted file mode 100644 index 1e9d224a477e58819aaa2374109f63b9946c8750..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1486 zcmaJ>OK;mo5Z>iWBqck}13`Op8Z^kFg<>kPT^CiFBFLea9MT&RfMv8RTQEfmyOdfh zR-qyGfUZ^`dVOS=e5i4n;}_jZG{BZAHROfA5cR6 zM5nzhaGrpu0Vqy5%}7kmZcS~AP%?F5mtw}sylE%yfNgWb6vI=5<@d$m*9m2+yM zC4FP@PUVg%_c1=URt^tJ`;D_A3!*-OyjzkLm3v@$Xyp|0U{`cS&2FuCd%Zg=%EJry zHmN<{<-N+AP_R2?2de$5v!dtp2WWspY6@b3*dT80@U1r5ik#cE&$sKK@~Z&wI+df| z!X1d$0le2R{x`hmkZWVpf;XaU0=WBY4H0Wi9L;Q@<~-{3c^ z&@k$*8Fl}Kkq?ZVI^YBbc05LX}CLPDR|4B1_B3Lf~|l zx33Zp+HpqTS;HZt%cGC)&(02*3SX~{-Qg};draNOeZbVGCh&+U7S_ANCVj+|#J7>T z+J<6O15}St9iTc|UQ3k{vNWfoh^g3_okdaX0Pbjc2lWP|FHeVt+P%fF;YOEF5y9al zI57SPT!V6d17!p(ba*VvWR}Wws+cD|04+PHd{78g&lU&9X#_nH&{UxL@cVq!awG%1N%YmlaT<^aqJLDdzC8VQF%l6|d6FOiBld zO2-1jdiyKWt4WbRld_QdW->11G%XYH{VYp!m}il*p6mkVxQmZzdK>AM^RVsgx63|j zXAT>j&Hd3{Y*4SgLA&sv?Hp~KiZ;B5zYw_#$liTD`ut@kQkg@WPKtc+5}P&2kAa1d zqlpsAL=+S)M3zLxOUe@|%*$$e$A#?A&h)nF^VMILivOcrSWvfJ_o z1oVeVGoOCb9q3tKitps46gs#H>CQSPci>EXcRbHW*k09Nqw4#0Jyq3HHAWLML^n2^bH8)$J?GrV zcQ4gesibiDefy(s3k)d{ey*J( z%=hHBY>0+*i)-f%{!LEJ93q~(r1HVkhSlG(98)(suIYCBroL%g{SDR~|4soEAumH5 zMMh!XM**LAIgj)BJ;4`Tew+72Xu+2}XuJsJMImxo{RlIYS;7;9bA%@o zS-*lmoX6K}L}DIO6d_Z@G~qnq8Nv$TS;7UvbBV0Kz#nG)jg2_UO5=+MJhi2$Ek|u7 zYR96s8nxpGyfJ?}_c1@s`IE*ez*`Y~NG12Qn2=zb2x7KNfWY zw(bkg=}~6EUOblh1dK)I*Akg8r86_jdsx;^N35NR+F7u7;kHcdoii4Vr@c91?|j7G z`NzRtFnAg=%R2^0E7uLh>rWS`V6vfmL6y{+la;~aQE&hs8e9Bp08;t{sgI7jQpxD_O zIe}v5sCGS3yB^h1{F-YSogr#rzO|v*u@ygDLIZON=f_Z#tub0WL$MR9jYa~+PV7bG z1d5$lDXs5V-M%$&x8lOuXl)Edk=kf&48_jT+O(s!X;@oWn4!2Zw(fp~Y3bp5H4KRk z4{_LyK*Yh?>~oc&22)L@mYG@&AVa$oh}f<` zd2wgxnvSc(U)47{y`FBHJ2v~**0If?h;IGLZnx)l2TqXfSs392v%0fo?e+{Bs$cC{ zS2{g?(CM2&UUxd1Cd&|%U!q&kwFa+%^mZ_zZ(4T0XmQ&Vh(rVOGmX@+wDQhKZX-g?9Rb5L}*HYEBRP|;mOS6$& zUQ{mJED(Se8(FE8cyAIL(M&A?&rLEeopbF|&VCl$xclnH#mhY~VgL?oS%b!9#)R(R zDvrpsH@c4LkjKHGYi3Wclcl@YE&4aFgCTh5YCFSVo+xzRzxomiIg?QL_IiFR&-t$wHmuWWFf;37SR7UH||9 From 85bec9b2b822398c6af27b9abaa813f58b3cb4ee Mon Sep 17 00:00:00 2001 From: DianaRatnikova Date: Tue, 16 May 2023 23:31:10 +0300 Subject: [PATCH 07/18] Edited program2 --- tests/level_1/test_two_date_parser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/level_1/test_two_date_parser.py b/tests/level_1/test_two_date_parser.py index bf2ec012..b19d47f5 100644 --- a/tests/level_1/test_two_date_parser.py +++ b/tests/level_1/test_two_date_parser.py @@ -5,4 +5,4 @@ def test_compose_datetime_from(): assert compose_datetime_from("2023,12,15", "19:55") == datetime.datetime(datetime.date.today().year,datetime.date.today().month,datetime.date.today().day,19,55) assert compose_datetime_from("tomorrow", "19:55") == datetime.datetime(datetime.date.today().year,datetime.date.today().month,datetime.date.today().day+1,19,55) assert compose_datetime_from("202yhbmj5", "19:33") == datetime.datetime(datetime.date.today().year,datetime.date.today().month,datetime.date.today().day,19,33) - pass + From 6d9d3ce2026325ed5458f9b1b967c2b368b1b15b Mon Sep 17 00:00:00 2001 From: DianaRatnikova Date: Tue, 16 May 2023 23:33:35 +0300 Subject: [PATCH 08/18] Edited program1 --- tests/level_1/test_one_gender.py | 38 +++++++++++++++++--------------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/tests/level_1/test_one_gender.py b/tests/level_1/test_one_gender.py index 44373904..a89092f2 100644 --- a/tests/level_1/test_one_gender.py +++ b/tests/level_1/test_one_gender.py @@ -1,21 +1,23 @@ from functions.level_1.one_gender import genderalize -def test_genderalize(): - verb_male = "VM" - verb_female="VF" - gender_male = "male" - gender_else = "female" - assert genderalize(verb_male, verb_female, gender_male) == verb_male - assert genderalize(verb_male, verb_female, gender_else) == verb_female - assert not genderalize(verb_male, verb_female, gender_else) == verb_male - assert not genderalize(verb_male, verb_female, gender_male) == verb_female - assert genderalize(verb_male, verb_female, '254654') == verb_female - - -def test_genderalize_type(): - verb_male = "VM" - verb_female="VF" - gender_male = "male" - gender_else = "female" - assert type(genderalize(verb_male, verb_female, gender_male)) == str \ No newline at end of file +from functions.level_1.one_gender import genderalize + + +def test_genderalize_verb_male(): + # Вопрос 1: теперь не создаю переменные verb_male = "VM", gender_male = "male" и тд + # в тестах без них просто можно, или ещё и нужно? + # имхо без переменных неудобно + assert genderalize("verb_male", "VF", "male") == "verb_male" + +def test_genderalize_verb_female(): + assert genderalize("verb_male", "verb_female", "female") == "verb_female" + +def test_genderalize_gender_else(): + assert genderalize("verb_male", "verb_female", '254654') == "verb_female" + + +# Вопрос 2 (хотя после теории по mypy уже догадываюсь): +# надо ли в тестах проверять типы? +# Догадываюсь, что не надо, и что май пай берёт на себя всю эту нагрузку +# убрала соответствующую функцию \ No newline at end of file From e7ec87aff1b8709cf3f95e33b9e2bbf7d6fe62d8 Mon Sep 17 00:00:00 2001 From: DianaRatnikova Date: Wed, 17 May 2023 00:43:04 +0300 Subject: [PATCH 09/18] Edited program2 --- .../__pycache__/five_title.cpython-310.pyc | Bin 760 -> 760 bytes ...test_five_title.cpython-310-pytest-7.2.1.pyc | Bin 0 -> 453 bytes ...our_bank_parser.cpython-310-pytest-7.2.1.pyc | Bin 0 -> 2551 bytes ...test_one_gender.cpython-310-pytest-7.2.1.pyc | Bin 0 -> 1571 bytes ...ree_url_builder.cpython-310-pytest-7.2.1.pyc | Bin 0 -> 1486 bytes ...two_date_parser.cpython-310-pytest-7.2.1.pyc | Bin 0 -> 4640 bytes tests/level_1/test_two_date_parser.py | 11 +++++++++++ 7 files changed, 11 insertions(+) create mode 100644 tests/level_1/__pycache__/test_five_title.cpython-310-pytest-7.2.1.pyc create mode 100644 tests/level_1/__pycache__/test_four_bank_parser.cpython-310-pytest-7.2.1.pyc create mode 100644 tests/level_1/__pycache__/test_one_gender.cpython-310-pytest-7.2.1.pyc create mode 100644 tests/level_1/__pycache__/test_three_url_builder.cpython-310-pytest-7.2.1.pyc create mode 100644 tests/level_1/__pycache__/test_two_date_parser.cpython-310-pytest-7.2.1.pyc diff --git a/functions/level_1/__pycache__/five_title.cpython-310.pyc b/functions/level_1/__pycache__/five_title.cpython-310.pyc index 3055bb60e6b17ddc047f19612396c9592c49eebc..2e04a3b20ed96d922f0fb599df7713111b34f9b9 100644 GIT binary patch delta 20 acmeyt`h%4_pO=@50SM+6C2iz>%LD*CLIt$| delta 20 acmeyt`h%4_pO=@50SIo*kKf4smI(kp>;@bF diff --git a/tests/level_1/__pycache__/test_five_title.cpython-310-pytest-7.2.1.pyc b/tests/level_1/__pycache__/test_five_title.cpython-310-pytest-7.2.1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..90ce3d2b9ab71ba4339e7828d4a97f3c39fe321e GIT binary patch literal 453 zcmZ8dJx{|h5Vi9`(yEnM7?7BevP7aILa2hh3tLplO5}B5oJN3PiOVc7al)x21s!TohXJ9aj*6K2lR%!; zNs-__FS;65Yd>v z9;(~5gi@=vxBEsd))tHvYRBLObR`U!p=0pU0VKN_5Zj6aFe|KtyzSkE=dk~VysYs9 zM^wjHvWZJKosjstakC}bKB7y8>i9-p8UxyjM&%lwHIC&b$CgX}dQ&71lBF)LwwPnNt?E6D=w{6A+;|BfmW@ot!I-s-SwK8 zF>TE33juMFkl?vRieHdWe*iE10ABb5EAawIsP8;gh;q)Xle(=~YtNjS`R2@b&YU^x zXlABB;9-At*~2U$e_&_&F`)A%yut;+2%`aUscwxhV-QM0)6G(xF@juZxmIYqc9?hb zVZklvaT*leqFzyQOVDP5nXv4ZVa{aP&xkwA=ndlJ9)W#w-7ypUZLfdl9gnl5a3d7g zd?CDTKe4Xd8~Az9O z7`T1~JYves*kIW>qX^4Y$(N)`m{lc;PFiEqW}vm<%~wfmvO=7dWS1P!F*z{CB+ki< zGF4XP_A{}?im}Z~abB9rR{4D+F0dIGDNl_QRY4WEjku)DgDlI9=}jXh@r;^*o;{{) zwyt}-S!S_0Hvf%r)BK9WG&bUl%pF*Y0L}v3LY<6hT>gS=QC4A#pV_K(ne3sS>bUPz!4QjuBT>Mf@#`2PL+oDqy#Y z<6FkqWHmW+P#%+yiTDBLXJuhb`9sj=Q0r4xWA!7%Pl!;!k^hVc)BsUu%SVV`G@=BE zUo`?WKrCy00em}tg#1k-=K=Y<7rF))z&D81)w%H>V>!f>I$MT9)NlmQ7^^@P#tzP;||Z|p>aP9JXG$T-z_OdF#@!yC$-Zp8eC zo88@!Tf1)dnkRNV*IaACitPKs=PlPndugZ5DO}A*ct7D9+o5+)41%6~^zV}=Pr5jD z_+TZoCL8=6uC7MQ$=^-?qY@c+^CZ~1~(M_&iKdxKa5BJfSK!HxEOdsc35w_ zCxv4qMsqEp-5;rIbMJ1a3)SXF^7v}^{LR4kcz>`bccOm#ru2pE^|ztS_`KT_zR)8A zKp*=-r=@$Ht!T(Qx1nZrbYR*p^uG=7ack}xBB{EZ^IFVPbNy^Vgt1`N4$=0%Mqva zK-&>cA#Pkur_VToLxm?vMuZ~CqR%2JPs(bC`(hYKC!1uz5Q-LxwhLkd#hFpr6L5A? zTR!Uu96SqbKEN$E57~h79GlaJQ=m+yfS@J{{8FOpn&=eQbB;(%xi|2+35*?!SE1oG z6m<}|_d1HxC^k`?8_iDfYrz(-2~M<}#l&Ww^kpyflT1Il3wA-}m~R}9CCTc1ODyJh zd!ZL3*5!#}3&{r>j3m<772bs0z(e$SG7otZ1Q59a$CLKBpOj#_b9>keAZ( zJ7=alXI&lD)Ie+PnO>XEp)<26=0PO2|GQxp%!)H0OnUe`Wtg-~ONI$;fu_w5JY2ql+toX1Iy6(q;fR{tzsq~lPx41Yi8UGHSPR^f zTf=@APg67}b)@-x3DJp}rsz@Xar`I4PvEXOxEWBEI95YVERBK=g%&y#_JuHF!@$3U RMO5H_pf<6oO-rp&)Wb1 literal 0 HcmV?d00001 diff --git a/tests/level_1/__pycache__/test_one_gender.cpython-310-pytest-7.2.1.pyc b/tests/level_1/__pycache__/test_one_gender.cpython-310-pytest-7.2.1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4a9b580389e6954f00b6f8a3634ea36d23aabfbc GIT binary patch literal 1571 zcmdT_%}*0S6rb7M?rsZ+gv5wJsh?pJ)6h~7jWsCIBNvT_4asEbOrdcQ7f~-*d8hPa(uqWE~ zu$re}j3YBQ!Ea?|X1z1=QdSag zQhaPsD=T#{Eh&G;7+Ta$&0}kb4v_F5UP{pr^BQQj(qas8&@<4r#A9iUr8$@@lKdtJgij)y<7; zX~Hta8j3X)TUTsDTD?KNel{Bj!FZ~7tFL-OyH`hLy#oLYRwhG_i-wCr^+u66 zwwfcvZvtXxFWOIbLKg5CPQIVSjU9FVZoCJLG2ZS9CbUOD(g6!eU0WoH87XGC)*Hwh z8ncO+CKtEus6kd&b7Ju&5SLE->0hVa_^+m&n{ZM&r9tR0J@j@VIsE1zZY!oh;R+sp zMX_1Mt}3>mn7W&S-2zQ6{u$w7(;3J()fi)b2lPuZ=2eKoYt;Sm+hF*1W39Qq*8F#U z6;nW1D40IYU8utEsk&3rJ%2lV9vpIk6tAsT3@^NZ8fWi$H-(pT;gZhS$LCbPi=BSl xR*yy0#sgXVHH!tNYRohay6gm!8dD9Y`!q^uKV;7^OK;mo5Z>iWBrV%<69nzeY0)5y6pE?Db{te`ilB#Ha%gWv0G83NY{3*M>{3ds zke9fJp7INPh>kt9e<1&(hXs1-sed7-&Makv>T7|SoyR`DZ-&cab2B6`e*fhMevcCJ z2RiLxf%61J^+9pMX+~mdW@})fhs?$u6ZSI((byOpcH zE9pCncPe*8xsUOYwRCt;+V7ktnGy!_e~!wcL|A;Tr^KnoaNGq%5C6ab^03lCU?{3Cw7 z3Js%;6{C%RVdMiNrw%xQ2HtoUyQhgNW$eyzVwR?-n$F|kq)=s&rxOu(rO489JQvvA z#m%e4y>^_@57uD7=;G+}JJYiRroz`NV|TEN)*e%LaPBkpg$X=hiiP#=ph+JwCGl%y zuC`$@sy?a*s18saEw)poge=YOC}K)G)3Ydw9l#weZlPX-^wsIWP`f=JG~DRoDIz$$ z1P8|dfNN0huc3^9g$|EJnM_leP89Q`2cTsKl@AJm?xQ-45!~K7X5enZeHIw9I(#xc zD+Lrfm3k)`rdgIqF_pt&0_O|eg>-@ss~qP_dszW1l>RtTC&dgN8!k3$1ChzNPnfjQTZvDEYSXCwdD>3 z^e0KvpI%cPs98^nmvUSR9bAQUXBCs%uqXa(G|PurUe#Nn>iq+d>Atzs@NB7Dc&-2C Tq~NnmJcb`8Q3&-m>Dqq*301W+ literal 0 HcmV?d00001 diff --git a/tests/level_1/__pycache__/test_two_date_parser.cpython-310-pytest-7.2.1.pyc b/tests/level_1/__pycache__/test_two_date_parser.cpython-310-pytest-7.2.1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5ff775cebbff28393afb68296cc4b88394503c18 GIT binary patch literal 4640 zcmeHL&2QXP5cjk9!|UD6?q>7VFGwh@YFa{ey_=7Updy422r3~YBvzHIZR|7~cGr>Z zG^E%dwY?%LaY3j^%>g8Yxb$D(f;e-*J#vbK-~b2cq40ZS@5T;=R;>ybBF*?W<2N&J zo`3JfYpYmP1pM9lZN+#kB?v!oBmO7CI0JEBfieVxb%hqAtJsr7feF1-E6w;Fv76~- zTUo-aE4O4Cm22e;$w*xlT8fc2GPvdq_J*KlcacvxtFmBx#p-QXj;R}M*K|8QQ(v{M z-U`1x_&WqpfV=>46d4m?J_`EG6+FRXS43ZQ**fzjXwgr3sddRud+95JpYby5DL+eo z*^}YVc{%tMPgzg*yTvYzovhUAxxlwa{AFYD#Kl2`UBSJM8dCwilA zi+j=p8(1OC2tU zmBtr#7+s6ebtJl$qH8(2R-)_Z4l@p3&wj=x1b@spWE}R!IvkI?MdTUr#&_5ib{RBI z2|gDF5g}EG1W7^CkPIXXks&#V0?9)PkRoIRQi7Br6@Sz?@`zdam|x~xoJ2J+bOH>W zj2K$+CcH^7bP7D2iWn+7m(lHjp^x)Be`P3m{1rwKN3SvaCST_VXDPCMN7=wmWc!}7 z-IJ+^`Z*T$>%ORmVCyx}IXuiP+B5qyKLlfu`Q=#Vv&qcd^6rMU#NLAudk;Pe_JY9^kV${aI0_a&`H0WfWB+)zO3p2;;DEV*bGBZS9DZ(w z%$4jCJ%I;4Uy-dw**J40d!Dl0o4JznYAovYeNhj?T*=vvWqxm8=7(Xf{ADsT zx9*#{|Mht*;6>v2*-J`&uCAS`)lb!$m(sPR)6M2?6>kc=3s5S%EiNystoyuElECqB@E{>sm&88?`Xs*=@6JD}LBQ9dili$5E86 zK5U+&ffLCy@iE2 z8WhIT-K{XS9`>tYNc8X!ht&uqJXo8*zH(IOs=?JfSBrr>cuqlTW4ks-x<*=SaZi)< z0_i2L>vN>*q#LB?NiULKQnLX@X_Q0L2scSDkft1sS_@+u+NDz4aZK9{$%Yjnce5qC zR?o6+Yik!|1$EoMKR9WJkGiqlrtOKuIacs{1ttr-RwLSb_uD-)$mvdd)#Mq1k>_a_bgcf1AiW(_^;OI6wO!qO zXQSKhw_V&(4+VK%A>1&vxS_?3X53h6(X67FdctZXtoeks7`N)Rgry~{X2M#CTiRU0 zN>tYp)wM)*Em6IZ$kM3C+l$JDiv5#|4po?Z#uaTv@TNeGA*TE2+bF&-U!9k+X zU4QDQQOM!czQgVapOF5R^i9Ej3huWI&(#X8R7@xhxif!Eb$+A zHNh!uF@`S`On3`o@RxER}H))?l zrEtseWudhRl?pScQggiPi#)l>+03_=lYuHTnT`EnKLe;10(r1i>?1t#fF2f_4Y>-! z&)Vje-NA;;4P8Mt^4a`DNNZ+wv%kXkhBF(j`s}_1-`m{w(} Date: Wed, 17 May 2023 01:02:32 +0300 Subject: [PATCH 10/18] Edited program3 and 4 --- ...r_bank_parser.cpython-310-pytest-7.2.1.pyc | Bin 2551 -> 2103 bytes ...e_url_builder.cpython-310-pytest-7.2.1.pyc | Bin 1486 -> 1721 bytes tests/level_1/test_four_bank_parser.py | 31 ++++-------------- tests/level_1/test_three_url_builder.py | 10 +++++- 4 files changed, 15 insertions(+), 26 deletions(-) diff --git a/tests/level_1/__pycache__/test_four_bank_parser.cpython-310-pytest-7.2.1.pyc b/tests/level_1/__pycache__/test_four_bank_parser.cpython-310-pytest-7.2.1.pyc index c8529440647189e14f1a1f869211b655dadc1c6d..2245755f74d0db43da44d8e5a5e29528b55ab0eb 100644 GIT binary patch delta 1119 zcmZXT%WD%+6vpqJ_avD~()Y_6Xays+Hc5;4=t>a;5u}I^lrrs!?PxP8Gq;w8I|eK+ z6=k+vBnua=UFh0BK!h%YL2y%$?z#~{P&{|6F<^!{e3|n*XU_SC`@R2d&Td#%is0|o z&sBIYzqI#TdHk2g`wHGcQz8UtNI(iHBM(TMc1T<5kWgYWC!BI=R}N*SfD8(#&!kX6 zt%06sl`C9blR}NDOl#|4bm+e7}`^ZNSK0Q7~v_GqE53c5;>mk z&|Uh30#Qh4gl2ci49oM(E)6YiF%_4!Tikv@g9R)S``Wngs7NLIj&%q4AO>K09AIAz zAQTQT*5k;Rgb4n%4n-7Rnr?z zz?Q*Xb6F6pjcu>yR~6Bts@@K2ez~b8-K%D|hx=70O?GhN2Q{PQ9_^ zv8uA__)s;1&6>xSUGJ}QSdspa78i@OdEwOQ&FGzalosWFp9uZY8|~crzSsbV)tFna z#j@Afjujz&SrB;Mh_7IXb*Qbnb!Q{iul^Cy8U3j?fT?0W`mB#k*(j^26~}wHEM_V7 z=(3*`eR9z?qp7_n{uCimTD=i{G$zjuVMd_}wP{AeiyG35bU=U6GsHh7n&)C;Wy{@Q qt{3_9KjH4Y-iK;)_hGo5jCQJZ5X?G^ND&EzMup1I9-3hf&4`CYn1#5)RUV#(ghpdRr*RQs3fFmLN+u#o6R?#$ z-x4t%<*^+i;#`@jH0#1u5!$f*(OmoIFC`hvBa@uqfAf zd`d)?XL)9yh#b#3f3nytP76E-fs1l~n|KN>vBWItq0f=?Bb=vL)Wh~uP-&?Kn3iby zjCdvq4oObzpCuwCAZ5CEhWrvBaR~A}AV2}J80aiiw{%AS7LXYre-BPU0l7q9d8`(Y z$kSKpYdmjZ&1V0CgpxqLTo-&>FzrmzeAbU>{2C z|J?!VlYoM*0ChW{E_SHk;b5-_ow{@(QAc{QNZ@q{dIH}&NZ}G)d8|Q;%Jg+w<>jDV zizn?`JZl#c1qF$sC{c71t=4XgwPv$bZ&#{@zTRjw)?4lMvEFRg8*kNH?XlXta<$bq zA~$!3qpgA2?~ch@^TqYEYW5(Qe1;n>}B-*&}B4yS4&O?hop{$s&l=B}0?x zIS2iDp44RBxstGk$26( z{(Deu^IW#<1t5%=d=u?5)9N{X*i9>W1tJt&8Xl+Yv<#GzCIiO3tSxW84MM@Ezcr%Z zB#sjW<|v+9og_&T7jPa%2`9-5@)Ebe$9@xBSJS@!>4DW_*1)l=?iX4cued*H8*B29 d+g=9ahuPhcHQ2G`R}XyVX#}|hCgT?M%74xNlI{Qi diff --git a/tests/level_1/__pycache__/test_three_url_builder.cpython-310-pytest-7.2.1.pyc b/tests/level_1/__pycache__/test_three_url_builder.cpython-310-pytest-7.2.1.pyc index f700420aebe6a81ca6d42d3a8d8287b238f62799..37889ef55f3a24e14c60b612cfa45909a2640906 100644 GIT binary patch delta 284 zcmX@dy_1(OpO=@50SG*QC8u~XP2`hdbegEGCCiY)n8Ojpk;0t9(!vnMnZlaF2Bf)C z7=sx!**7MgWvNdF=|Tn^K#nsI7wZ6t5{4|s5~dW!6sBILepW^XAe*_Fv5C=;p_sp% zk&yueBY`-D0caqL-z~1N#GKMp*P^2QB2C6ythtFL$r)9=2th?fMNO7lYz37isl_F? z*oqRlGmBG;i)EIb}0S;dcz5oCK diff --git a/tests/level_1/test_four_bank_parser.py b/tests/level_1/test_four_bank_parser.py index b9190865..1bf8d4e2 100644 --- a/tests/level_1/test_four_bank_parser.py +++ b/tests/level_1/test_four_bank_parser.py @@ -5,37 +5,18 @@ def test_parse_ineco_expense(): - raw_sum = "112.3 $" - raw_card = "40004234" - raw_date ="13.05.23" - raw_time = "17:23" - spend_in = "Shop_name" - - text = raw_sum + ', ' + raw_card + " " + raw_date + " " + raw_time + " " + spend_in + " authcode "+"jhtfj" + text = "112.3 $, 40004234 13.05.23 17:23 Shop_name authcode jhtfj" author = "Masha" sent_at = datetime.datetime.now().time() # Входное значение для функции sms= SmsMessage(text, author, sent_at) - last_digits = '0123' - owner = 'User1' - BankCard1 = BankCard(last_digits, owner) - - last_digits = '4234' - owner = 'User2' - BankCard2 = BankCard(last_digits, owner) + bank_card1 = BankCard(last_digits='0123', owner= 'User1') + bank_card2 = BankCard(last_digits = '4234', owner = 'User2') # Входное значение для функции - cards = [BankCard1, BankCard2] - - raw_sum, raw_details = text.split(', ') - raw_details = raw_details.split(' authcode ')[0] - raw_card, raw_date, raw_time, spend_in = raw_details.split(' ', maxsplit=3) - amount=decimal.Decimal(raw_sum.split(' ')[-2]) - card=[c for c in cards if c.last_digits == raw_card[-4:]][0] - spent_at=datetime.datetime.strptime(f'{raw_date} {raw_time}', '%d.%m.%y %H:%M') - - Expense_result = Expense(amount, card, spend_in, spent_at) + cards = [bank_card1, bank_card2] + Expense_result=Expense(amount=decimal.Decimal('112.3'), card=BankCard(last_digits='4234', owner='User2'), spent_in='Shop_name', spent_at=datetime.datetime(2023, 5, 13, 17, 23)) assert parse_ineco_expense(sms, cards) == Expense_result assert type(parse_ineco_expense(sms, cards)) == Expense - pass + diff --git a/tests/level_1/test_three_url_builder.py b/tests/level_1/test_three_url_builder.py index 7cde2673..017db09c 100644 --- a/tests/level_1/test_three_url_builder.py +++ b/tests/level_1/test_three_url_builder.py @@ -1,7 +1,15 @@ from functions.level_1.three_url_builder import build_url - +import pytest def test_build_url(): get_params = {'k': 'k_str', 'v': 'v_str'} assert build_url('host_name', 'relative_url') == 'host_name/relative_url' assert build_url('str1', 'relative_url', get_params) == 'str1/relative_url?k=k_str&v=v_str' + + +def test_three_value_error(): + with pytest.raises(ValueError, match="ValueError"): + raise ValueError("ValueError!!!") + build_url(["202yhbmj5", 1], 14645) + build_url({'fere': 0}, 134, "Python", 1,2,3 ) + build_url(1, {"32":21, '323':1}, 0) \ No newline at end of file From 45bba6134fc03a5838a51c1abca8052e06604c25 Mon Sep 17 00:00:00 2001 From: DianaRatnikova Date: Wed, 17 May 2023 22:30:48 +0300 Subject: [PATCH 11/18] Added test_five --- .gitignore | 3 ++- tests/level_1/test_five_title.py | 16 +++++++++++-- tests/level_1/test_four_bank_parser.py | 5 ++-- tests/level_1/test_one_gender.py | 4 ++-- tests/level_1/test_three_url_builder.py | 7 ++++-- tests/level_1/test_two_date_parser.py | 32 +++++++++++++++++-------- 6 files changed, 47 insertions(+), 20 deletions(-) diff --git a/.gitignore b/.gitignore index 880de6cb..6955efc0 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ env/ venv/ ENV/ env.bak/ -venv.bak/ \ No newline at end of file +venv.bak/ +__pycache__/ \ No newline at end of file diff --git a/tests/level_1/test_five_title.py b/tests/level_1/test_five_title.py index fe767004..f61b82d6 100644 --- a/tests/level_1/test_five_title.py +++ b/tests/level_1/test_five_title.py @@ -1,5 +1,17 @@ from functions.level_1.five_title import change_copy_item -def test_change_copy_item(): - pass +def test_title_with_additional_copy_text(): + assert change_copy_item('THIS IS TITLE', 100) == 'Copy of THIS IS TITLE' + +def test_return_title(): + assert change_copy_item('THIS IS TITLE', 10) == 'THIS IS TITLE' + +def test_if_has_copy_number_no_space(): + assert change_copy_item('Copy of something(17)', 100) == 'Copy of (18)' + +def test_if_has_copy_number_with_space(): + assert change_copy_item('Copy of something (17)', 100) == 'Copy of something (18)' + +def test_if_no_has_copy_number(): + assert change_copy_item('Copy of something(1fvd7)', 100) == 'Copy of something(1fvd7) (2)' \ No newline at end of file diff --git a/tests/level_1/test_four_bank_parser.py b/tests/level_1/test_four_bank_parser.py index 1bf8d4e2..4eafff1d 100644 --- a/tests/level_1/test_four_bank_parser.py +++ b/tests/level_1/test_four_bank_parser.py @@ -16,7 +16,6 @@ def test_parse_ineco_expense(): # Входное значение для функции cards = [bank_card1, bank_card2] - Expense_result=Expense(amount=decimal.Decimal('112.3'), card=BankCard(last_digits='4234', owner='User2'), spent_in='Shop_name', spent_at=datetime.datetime(2023, 5, 13, 17, 23)) - assert parse_ineco_expense(sms, cards) == Expense_result - assert type(parse_ineco_expense(sms, cards)) == Expense + expense_result=Expense(amount = decimal.Decimal('112.3'), card = BankCard(last_digits ='4234', owner ='User2'), spent_in = 'Shop_name', spent_at = datetime.datetime(2023, 5, 13, 17, 23)) + assert parse_ineco_expense(sms, cards) == expense_result diff --git a/tests/level_1/test_one_gender.py b/tests/level_1/test_one_gender.py index a89092f2..d109dd51 100644 --- a/tests/level_1/test_one_gender.py +++ b/tests/level_1/test_one_gender.py @@ -5,7 +5,7 @@ def test_genderalize_verb_male(): - # Вопрос 1: теперь не создаю переменные verb_male = "VM", gender_male = "male" и тд + # Вопрос 1(ПРОЯСНИЛСЯ): теперь не создаю переменные verb_male = "VM", gender_male = "male" и тд # в тестах без них просто можно, или ещё и нужно? # имхо без переменных неудобно assert genderalize("verb_male", "VF", "male") == "verb_male" @@ -17,7 +17,7 @@ def test_genderalize_gender_else(): assert genderalize("verb_male", "verb_female", '254654') == "verb_female" -# Вопрос 2 (хотя после теории по mypy уже догадываюсь): +# Вопрос 2(ПРОЯСНИЛСЯ) (хотя после теории по mypy уже догадываюсь): # надо ли в тестах проверять типы? # Догадываюсь, что не надо, и что май пай берёт на себя всю эту нагрузку # убрала соответствующую функцию \ No newline at end of file diff --git a/tests/level_1/test_three_url_builder.py b/tests/level_1/test_three_url_builder.py index 017db09c..bafbacb5 100644 --- a/tests/level_1/test_three_url_builder.py +++ b/tests/level_1/test_three_url_builder.py @@ -1,9 +1,12 @@ from functions.level_1.three_url_builder import build_url import pytest -def test_build_url(): - get_params = {'k': 'k_str', 'v': 'v_str'} +def test_build_url_two_parameters(): assert build_url('host_name', 'relative_url') == 'host_name/relative_url' + + +def test_build_url_get_parameters(): + get_params = {'k': 'k_str', 'v': 'v_str'} assert build_url('str1', 'relative_url', get_params) == 'str1/relative_url?k=k_str&v=v_str' diff --git a/tests/level_1/test_two_date_parser.py b/tests/level_1/test_two_date_parser.py index d3714d62..38826de8 100644 --- a/tests/level_1/test_two_date_parser.py +++ b/tests/level_1/test_two_date_parser.py @@ -2,18 +2,30 @@ import datetime import pytest -def test_compose_datetime_from(): +def test_two_date_with_coma(): assert compose_datetime_from("2023,12,15", "19:55") == datetime.datetime(datetime.date.today().year,datetime.date.today().month,datetime.date.today().day,19,55) + + +def test_two_date_is_tomorrow(): assert compose_datetime_from("tomorrow", "19:55") == datetime.datetime(datetime.date.today().year,datetime.date.today().month,datetime.date.today().day+1,19,55) + + +def test_two_date_is_chaos(): assert compose_datetime_from("202yhbmj5", "19:33") == datetime.datetime(datetime.date.today().year,datetime.date.today().month,datetime.date.today().day,19,33) +# ВОПРОС 4: +# Вот я поковыряла функцию, пока не разобралась, но не хочу терять наброски. +# Какой способ сохранения недоделок будет приемлем? +# Вот так комментить вообще не вариант же. + -def test_two_valueerror(): - with pytest.raises(ValueError, match="ValueError"): - raise ValueError("ValueError!!!") - compose_datetime_from("202yhbmj5", 14645) - compose_datetime_from("202yhbmj5", "1gws43") - -# Вопрос 3: не понимаю, почему этот корректный формат при сравнении с ValueError -# проходит тест - # assert compose_datetime_from("tomorrow", "19:55") is ValueError \ No newline at end of file +#def test_two_valueerror(): +# with pytest.raises(ValueError,AttributeError, match="AttributeError()") as value_err_info: +# print("with pytest!") +# compose_datetime_from("202yhbmj5", 14645) +# # raise ValueError("ValueError!!!") +# assert str(value_err_info.value) == 'some info' +# # assert str(value_err_info.type) == 'some info type' +# compose_datetime_from("202yhbmj5", 14645) +# compose_datetime_from("202yhbmj5", "1gws43") + \ No newline at end of file From 0097574c2da110d8dd7df18880be1e17e1e86527 Mon Sep 17 00:00:00 2001 From: DianaRatnikova Date: Sat, 20 May 2023 14:59:00 +0300 Subject: [PATCH 12/18] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=D0=B0=20=D0=B8=D1=81=D0=BA=D0=BB=D1=8E=D1=87=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/level_1/test_one_gender.py | 9 ------ tests/level_1/test_three_url_builder.py | 38 +++++++++++++++++++------ tests/level_1/test_two_date_parser.py | 24 ++++++---------- 3 files changed, 38 insertions(+), 33 deletions(-) diff --git a/tests/level_1/test_one_gender.py b/tests/level_1/test_one_gender.py index d109dd51..63f4d49d 100644 --- a/tests/level_1/test_one_gender.py +++ b/tests/level_1/test_one_gender.py @@ -5,9 +5,6 @@ def test_genderalize_verb_male(): - # Вопрос 1(ПРОЯСНИЛСЯ): теперь не создаю переменные verb_male = "VM", gender_male = "male" и тд - # в тестах без них просто можно, или ещё и нужно? - # имхо без переменных неудобно assert genderalize("verb_male", "VF", "male") == "verb_male" def test_genderalize_verb_female(): @@ -15,9 +12,3 @@ def test_genderalize_verb_female(): def test_genderalize_gender_else(): assert genderalize("verb_male", "verb_female", '254654') == "verb_female" - - -# Вопрос 2(ПРОЯСНИЛСЯ) (хотя после теории по mypy уже догадываюсь): -# надо ли в тестах проверять типы? -# Догадываюсь, что не надо, и что май пай берёт на себя всю эту нагрузку -# убрала соответствующую функцию \ No newline at end of file diff --git a/tests/level_1/test_three_url_builder.py b/tests/level_1/test_three_url_builder.py index bafbacb5..b2c61766 100644 --- a/tests/level_1/test_three_url_builder.py +++ b/tests/level_1/test_three_url_builder.py @@ -1,18 +1,40 @@ from functions.level_1.three_url_builder import build_url import pytest -def test_build_url_two_parameters(): +def test__build_url__two_parameters(): assert build_url('host_name', 'relative_url') == 'host_name/relative_url' -def test_build_url_get_parameters(): +def test__build_url__get_parameters(): get_params = {'k': 'k_str', 'v': 'v_str'} assert build_url('str1', 'relative_url', get_params) == 'str1/relative_url?k=k_str&v=v_str' -def test_three_value_error(): - with pytest.raises(ValueError, match="ValueError"): - raise ValueError("ValueError!!!") - build_url(["202yhbmj5", 1], 14645) - build_url({'fere': 0}, 134, "Python", 1,2,3 ) - build_url(1, {"32":21, '323':1}, 0) \ No newline at end of file +def test__build_url__get_parameters_short(): + assert build_url('host_name', 'relative_url', {'k': 'k_str'}) == 'host_name/relative_url?k=k_str' + + +def tesr__build_url__get_parameters_empty(): + assert build_url('host_name', 'relative_url', {}) == 'host_name/relative_url' + + +def test__three__value_error_only_host_name(): + with pytest.raises(TypeError): + build_url('host_name') + + +def test_three_value_error_only_get_params(): + with pytest.raises(TypeError): + build_url({'k': 'k_str'}) + +def test_three_value_error_no_parmeters(): + with pytest.raises(TypeError): + build_url() + +def test__three__value_error_bad_key_in_get_params(): + with pytest.raises(TypeError): + build_url('host_name', 'relative_url', {[1,1]: None}) + +def test__three__value_error_bad_key_in_get_params(): + with pytest.raises(AttributeError): + build_url('host_name', 'relative_url', [1,1]) \ No newline at end of file diff --git a/tests/level_1/test_two_date_parser.py b/tests/level_1/test_two_date_parser.py index 38826de8..b2ec05c0 100644 --- a/tests/level_1/test_two_date_parser.py +++ b/tests/level_1/test_two_date_parser.py @@ -13,19 +13,11 @@ def test_two_date_is_tomorrow(): def test_two_date_is_chaos(): assert compose_datetime_from("202yhbmj5", "19:33") == datetime.datetime(datetime.date.today().year,datetime.date.today().month,datetime.date.today().day,19,33) -# ВОПРОС 4: -# Вот я поковыряла функцию, пока не разобралась, но не хочу терять наброски. -# Какой способ сохранения недоделок будет приемлем? -# Вот так комментить вообще не вариант же. - - -#def test_two_valueerror(): -# with pytest.raises(ValueError,AttributeError, match="AttributeError()") as value_err_info: -# print("with pytest!") -# compose_datetime_from("202yhbmj5", 14645) -# # raise ValueError("ValueError!!!") -# assert str(value_err_info.value) == 'some info' -# # assert str(value_err_info.type) == 'some info type' -# compose_datetime_from("202yhbmj5", 14645) -# compose_datetime_from("202yhbmj5", "1gws43") - \ No newline at end of file + +def test_two_wrong_date(): + with pytest.raises(AttributeError): + compose_datetime_from("202yhbmj5", 14645) + +def test_two_no_date_str(): + with pytest.raises(TypeError): + compose_datetime_from("19:33") From a324b09ef3cedf97b52ca0f30463441080936a77 Mon Sep 17 00:00:00 2001 From: DianaRatnikova Date: Sun, 21 May 2023 17:42:57 +0300 Subject: [PATCH 13/18] __pycache__ is deleted --- .../level_1/__pycache__/__init__.cpython-310.pyc | Bin 156 -> 0 bytes .../__pycache__/five_title.cpython-310.pyc | Bin 760 -> 0 bytes .../__pycache__/four_bank_parser.cpython-310.pyc | Bin 1572 -> 0 bytes .../__pycache__/one_gender.cpython-310.pyc | Bin 352 -> 0 bytes .../three_url_builder.cpython-310.pyc | Bin 649 -> 0 bytes .../__pycache__/two_date_parser.cpython-310.pyc | Bin 571 -> 0 bytes 6 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 functions/level_1/__pycache__/__init__.cpython-310.pyc delete mode 100644 functions/level_1/__pycache__/five_title.cpython-310.pyc delete mode 100644 functions/level_1/__pycache__/four_bank_parser.cpython-310.pyc delete mode 100644 functions/level_1/__pycache__/one_gender.cpython-310.pyc delete mode 100644 functions/level_1/__pycache__/three_url_builder.cpython-310.pyc delete mode 100644 functions/level_1/__pycache__/two_date_parser.cpython-310.pyc diff --git a/functions/level_1/__pycache__/__init__.cpython-310.pyc b/functions/level_1/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index b1309f425498e7996c4afb984ec3e92f4760618d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 156 zcmd1j<>g`kf?MMa%ORAaZFliUUErheqJ$9VOeTUykSgyd}dx|NqoFs YLFFwDo80`A(wtN~kio@FK!Sw<0HRhVZ~y=R diff --git a/functions/level_1/__pycache__/five_title.cpython-310.pyc b/functions/level_1/__pycache__/five_title.cpython-310.pyc deleted file mode 100644 index 2e04a3b20ed96d922f0fb599df7713111b34f9b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 760 zcmZuvO>Yx15cSvYCQ(a4Ef5eAJ#gp>35gyNLZIF_^wQgErPX#lNvt}X$aYFnIj8b3 zs-Wb^KSF!ul)sP*jFSrWz(_NGV~^e&k3HJo?+~$G&C=V<+K=l6tnHw(I#e zV=E&03o;j8ESVH58Ztx?q8Rrh$DLS4GVx-?e6);Lq|a{YJod5qifjq`J%<#o<)d3F zThCElMhm`TK?8Anfhg^q-y~Chw)u2g~m8y>?iGi^$D`>c?U78q<b;cYb+8%Bj Ydk~(6lGexJNKQ0-3bVICp+#QtzYF`)Jpcdz diff --git a/functions/level_1/__pycache__/four_bank_parser.cpython-310.pyc b/functions/level_1/__pycache__/four_bank_parser.cpython-310.pyc deleted file mode 100644 index 200968260180050f347b916d1ba3b6e8264fd804..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1572 zcmZ`(OK%%D5GJ|YhgXuLJnGh$Kn)|N46t$1}OT6~vzYqj-|QrU`|Z6|D3UkCG=udXgU#$(8rYOE|>73?L4g*oQcj5yVjw2XagK zGFGADyF_+Wuph{->>cwYlJprFZJ)t?WICcQo~EUe-z^t~%5d)T0K_f2yWl8-h!XZa zQJ&(GPTDt{05bR@chOgA_5ABpOV=qX zI?IhRv;Ae2HAi9N&#Dj)X8ZM0iyr}>Sftu0JzgAXWQX}TXkrr4E^X$nPs3-h@%l6< zf9^wKJV*$Kg!nFgR+^{EnDjt7Zq=bpf^-R(brKp?S&`c5DA0Jj4$(wtw$PwxTqIMg zY+kAl!9oV`hC+f|e8jJ!c?2E@CO$9; zT=>o5LRCh&AT8@ zEZl_0U_N3J1ILCX&O6VPATGpVT%eU*>MCQfa4|5Ym`p6QS%F!TIXR({p3)iHu#LC& zAY!LfdbNT73-^qq={7qn)^-lPj!A=f4!(DPpe}` z4hKfevGEsGY+*tbNduizh{HY*v?xJ?wOYH{K(w`%SMvc~w?JcQpzaPl`HA z3$q8##hKOiP>zS?cz84ze*0+nbi_4QP2WO;sP!E%qfl?d%lQpWjWyICq1i!$8UPhp zy+Fmo-j8wi6EI1Lh|RK0I_OAc)4VV(5A2ZE!&6D4M+tyiZlB^Ouvy&gE12N74MOZg z^eTg5LKc)T4+f-h1gy7Q(ujZ5OvmnPiKVy$Jq?XMZVI|H6}# zU8)YenfKt$n-DvjT`;Qfq4XQguPFXkM&gd(7SuEYra3_n5@2xJge0%gzEtml*~Rw0cspDa(1 zlLMn4<08sa`@XNPixx^W`=j4lb5(e7zA+mGFMw6!z!i08D&JV+$asKOEemTvjc>c$ sAH#H{W!t<$yyN1XImh@3t6YS{c^t&w*^y1i5VD({)m;m>zpD%O1I}bp2LJ#7 diff --git a/functions/level_1/__pycache__/three_url_builder.cpython-310.pyc b/functions/level_1/__pycache__/three_url_builder.cpython-310.pyc deleted file mode 100644 index 61b88ddb5e0caa75d020b161026eccb56a2b3ab9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 649 zcmYjPO>fgc5S`g|5<6{$gb)Y`dPMjVKGYKm0SOKWiClV%j4b2bCI)|XcO5mAbE1EM zbA)J*{H48e;xG8btOccGy;+ZD=6U9=tAm3vkl7!xc#i@zXail z!3E_m@e1C;SG>Y|KzZ2Fd@b&v+zqx~kDk(>7L{mnIdh6@N4pP?`5&a1 BoDTp1 diff --git a/functions/level_1/__pycache__/two_date_parser.cpython-310.pyc b/functions/level_1/__pycache__/two_date_parser.cpython-310.pyc deleted file mode 100644 index 8b0a29e3763beaf74ab7960320a3c1fd3ef9764f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 571 zcmYjNJ&)8d5cT*Y=UwR}I6f*$nlwnzAe|6GLZZ9|swh$v#a=c`5=ZugW2N2dXleKZ z?3Vl`w^a8Rj)rlT;>LQ<_M4GC^W6FQl2OE8mH7#b{YjVmk?7J+ufsZUdyQNBY6}73+Rsns~*!HJW<}FTsXm~35ABuKOcuxqQh>&gI zz>jRtcl6&E?jPfuo|X z)K#I;_0D^DeM^I~9HKP!Hr&BwzC1OX+DszasL)X|E|O$yhjmmmNjuUub}dG^wY86` zcLT1YNTs43FjqcJ=0&0fQK8pv^2vl^*|)=VGUPY&7nHpF&|H=sy)%qkT)W{_i8f$6 ze6H*_>zg*%P_Cw-!PX6d3cuQ}dRgMNt7d1%+6U`jjNAC6asB9mo%Px4m3O_QFTzuz xC1`j67hJ+=WsrgV>mO4p7d}}Z1$8(Jb7S}DQOfE!y)#p1-zMKedRMb&;vdnAmR0}& From 9c2ebeb2ac0a371a96992bd75808364d5e7321dc Mon Sep 17 00:00:00 2001 From: DianaRatnikova Date: Sun, 21 May 2023 17:44:03 +0300 Subject: [PATCH 14/18] __pycache__ is deleted --- functions/__pycache__/__init__.cpython-310.pyc | Bin 148 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 functions/__pycache__/__init__.cpython-310.pyc diff --git a/functions/__pycache__/__init__.cpython-310.pyc b/functions/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index 8498de34cfd6c6776f7f15eb9429cc2f8b7d065c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148 zcmd1j<>g`kf?MMa%ORAaZFliUUErheqM1*e0*kJW=VX!UP0w84x8Nk Rl+v73JCK3JOhAH#0RUR8BV+&o From 59d5a2a82bf433df12475af69cf8002936db49b6 Mon Sep 17 00:00:00 2001 From: DianaRatnikova Date: Sun, 21 May 2023 17:45:27 +0300 Subject: [PATCH 15/18] __pycache__ is deleted --- .../test_five_title.cpython-310-pytest-7.2.1.pyc | Bin 453 -> 0 bytes ...four_bank_parser.cpython-310-pytest-7.2.1.pyc | Bin 2103 -> 0 bytes .../test_one_gender.cpython-310-pytest-7.2.1.pyc | Bin 1571 -> 0 bytes ...hree_url_builder.cpython-310-pytest-7.2.1.pyc | Bin 1721 -> 0 bytes ..._two_date_parser.cpython-310-pytest-7.2.1.pyc | Bin 4640 -> 0 bytes 5 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 tests/level_1/__pycache__/test_five_title.cpython-310-pytest-7.2.1.pyc delete mode 100644 tests/level_1/__pycache__/test_four_bank_parser.cpython-310-pytest-7.2.1.pyc delete mode 100644 tests/level_1/__pycache__/test_one_gender.cpython-310-pytest-7.2.1.pyc delete mode 100644 tests/level_1/__pycache__/test_three_url_builder.cpython-310-pytest-7.2.1.pyc delete mode 100644 tests/level_1/__pycache__/test_two_date_parser.cpython-310-pytest-7.2.1.pyc diff --git a/tests/level_1/__pycache__/test_five_title.cpython-310-pytest-7.2.1.pyc b/tests/level_1/__pycache__/test_five_title.cpython-310-pytest-7.2.1.pyc deleted file mode 100644 index 90ce3d2b9ab71ba4339e7828d4a97f3c39fe321e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 453 zcmZ8dJx{|h5Vi9`(yEnM7?7BevP7aILa2hh3tLplO5}B5oJN3PiOVc7al)x21s!TohXJ9aj*6K2lR%!; zNs-__FS;65Yd>v z9;(~5gi@=vxBEsd))tHvYRBLObR`U!p=0pU0VKN_5Zj6aFe|KtyzSkE=dk~VysYs9 zM^wjHvWZJKosjstakC}bKB7y8>i9-p8UxyjM&%lwHIC&b$CgX}dQ&71lBF)LwwFKE4rUX zRlll7)chKJ&8QwX{077qH-^mces?{HZPpp z&&E8FyjUKGLh@jg@Ie~zX{Sev%H1&L?90hG;sc!N_*n#}3hym=ma< zPY=kxaX@lInHkAwX6%`{sVrt9x93J~fnQ>d_U+8d>}?}2DO;8H9p)a;f1|9d$Ub2e zR%JC-XN?1!HJ@9#quk8QN_$4`W^U#@Hu7>-mOrZUeuXV$++Vt(`>|JgY`e$xol9;U{C4lk&1HELdy8muOctb;b^j=9083ph&IdelWkpbz}cvGXq-(4@)U zV;8cf)@R{JpM^PnYM@a)Z!iLT{QbMT8{KZN-EUpG+FI>&I;*|@YOC9Cch=gyeyh8F z1MIzFIt~)p%&l;uhJ%#x)}x`?dgR-8LOBe5tJCfEefulPMb|U@Y7|Npu+jEN$-+*b zCS3Ry&O3$lc5R)}FVE&3{oxRDXv29ptfRpba(EgHoV`*Qr;|ka)&S0*?@Bmw3Xa;b z7b=gwHa0gsy1Q}t%6Mnhla;TJoYrOwy^bfZ;J53^tGc7-Nw1Q(HmBiho)nn6Fl7vU zF^w!5M`t?_Tuvh8*@X!cq3NRO`CwMjT-$Ag5(-y(=Ifrs&g;PDKBinhW&_S!Y}SrL z;2ed3pe73ZrbPRi=p5G#PZpNi8FOKwI*vf4#1fiiFqpfKW)00cnvLD&9KSB4@GU5! z>n#;73l&$Rm=|V}K81O~6>#Aafj6wqP&kYaMsXMw&Sz6+Dplp?ct>$qZvFG(OR4 zj?(0|5UD7ZgRNA=p~8DL3X@PlM4SMA-XbvO&y-)nO_>Vck+?HLB^sziMCt*XJ7>^RU(V#r*>(2)_ z9z;A82?#k%limZAbChgDom>n?l1tqq0rZ4NL07jxi-`zyW%?&aw8uNeie8BS`3ZtE zMdT?k7PV-D)(rTgu5s0PMc>d5iMR|QZ=rCH7fPImj^a!(UE20k8j!m!_){@byeQAQ z3g@U#oP{y|2V0Y5fGZ>0M|9h7Go9`!y}NMh>TM)WqPK!sOR%Y-dQrk2B&JoGGnWwM ZeiWx{67i2Iv?TtQ&?7E&X^qy*e*oa$T95z$ diff --git a/tests/level_1/__pycache__/test_one_gender.cpython-310-pytest-7.2.1.pyc b/tests/level_1/__pycache__/test_one_gender.cpython-310-pytest-7.2.1.pyc deleted file mode 100644 index 4a9b580389e6954f00b6f8a3634ea36d23aabfbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1571 zcmdT_%}*0S6rb7M?rsZ+gv5wJsh?pJ)6h~7jWsCIBNvT_4asEbOrdcQ7f~-*d8hPa(uqWE~ zu$re}j3YBQ!Ea?|X1z1=QdSag zQhaPsD=T#{Eh&G;7+Ta$&0}kb4v_F5UP{pr^BQQj(qas8&@<4r#A9iUr8$@@lKdtJgij)y<7; zX~Hta8j3X)TUTsDTD?KNel{Bj!FZ~7tFL-OyH`hLy#oLYRwhG_i-wCr^+u66 zwwfcvZvtXxFWOIbLKg5CPQIVSjU9FVZoCJLG2ZS9CbUOD(g6!eU0WoH87XGC)*Hwh z8ncO+CKtEus6kd&b7Ju&5SLE->0hVa_^+m&n{ZM&r9tR0J@j@VIsE1zZY!oh;R+sp zMX_1Mt}3>mn7W&S-2zQ6{u$w7(;3J()fi)b2lPuZ=2eKoYt;Sm+hF*1W39Qq*8F#U z6;nW1D40IYU8utEsk&3rJ%2lV9vpIk6tAsT3@^NZ8fWi$H-(pT;gZhS$LCbPi=BSl xR*yy0#sgXVHH!tNYRohay6gm!8dD9Y`!q^uKV;7^Xq&2lyWx=E{k`uormWadvTlVrkxaKj!0k-kEuwZEW}izNc3M_NhV0 z?`YIN@R7&Rf4 z5;XpRb;xl*mG^u$N?AM;=>T2VUkelu+7oEV)AKNlEWjNuIw;p5eR$T_ z)b7pu6*szgf(Q<;!GZEW;3|~+YbZltq5M;x$J0b4V;MNY0nnm>!Ucgq_fZ^12ySm3 zGjP}LUf^l6%6~jP&p9MI5o#wMBxxE8J{5y(4C`~%f^duvD<4gya?%V&NcDOwhuI7s z8xD<6)9iVY>XTAlERz$CZngQ5&ebTJd?G|9)UEg=6XPV0`Pb7lnZS8wlb|K=eX1sI zQ{^_S8xQNoe%*MtZX8xPtM$XZHLF)2cu+TvBF%0!D_pZ4{!Bz0kX=0;y!R~SiI_l| zhS{X|43jmQoB|6j1|!L(_DC2s=V=^jE6#_4>&vQh$GGTD&()^R^G%hqV0npW=hI*4 zZ&bVq>RROjo8XD+%Jl%0oP0%d1MAlh#!pZrK{v5lghXz=pcINHC0|0*@5(w>{ufC) z<2w6LA8p9}V7S=$+u7-K0!um71yGJikdC+mJL$Wj6HpT!2&i36qT)Blf?4YUK>#HMnaPk{*wO6+~YPbMh!C#0`&XsrLQjL{QY{8u9&dF>tz`G*5 ts}y(tmE8*NT^O#jsCTacZ(~5Cci$gpY?ks5;6FelCifn3scW>HzW}i#=Ewj5 diff --git a/tests/level_1/__pycache__/test_two_date_parser.cpython-310-pytest-7.2.1.pyc b/tests/level_1/__pycache__/test_two_date_parser.cpython-310-pytest-7.2.1.pyc deleted file mode 100644 index 5ff775cebbff28393afb68296cc4b88394503c18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4640 zcmeHL&2QXP5cjk9!|UD6?q>7VFGwh@YFa{ey_=7Updy422r3~YBvzHIZR|7~cGr>Z zG^E%dwY?%LaY3j^%>g8Yxb$D(f;e-*J#vbK-~b2cq40ZS@5T;=R;>ybBF*?W<2N&J zo`3JfYpYmP1pM9lZN+#kB?v!oBmO7CI0JEBfieVxb%hqAtJsr7feF1-E6w;Fv76~- zTUo-aE4O4Cm22e;$w*xlT8fc2GPvdq_J*KlcacvxtFmBx#p-QXj;R}M*K|8QQ(v{M z-U`1x_&WqpfV=>46d4m?J_`EG6+FRXS43ZQ**fzjXwgr3sddRud+95JpYby5DL+eo z*^}YVc{%tMPgzg*yTvYzovhUAxxlwa{AFYD#Kl2`UBSJM8dCwilA zi+j=p8(1OC2tU zmBtr#7+s6ebtJl$qH8(2R-)_Z4l@p3&wj=x1b@spWE}R!IvkI?MdTUr#&_5ib{RBI z2|gDF5g}EG1W7^CkPIXXks&#V0?9)PkRoIRQi7Br6@Sz?@`zdam|x~xoJ2J+bOH>W zj2K$+CcH^7bP7D2iWn+7m(lHjp^x)Be`P3m{1rwKN3SvaCST_VXDPCMN7=wmWc!}7 z-IJ+^`Z*T$>%ORmVCyx}IXuiP+B5qyKLlfu`Q=#Vv&qcd^6rMU#NLAudk;Pe_JY9^kV${aI0_a&`H0WfWB+)zO3p2;;DEV*bGBZS9DZ(w z%$4jCJ%I;4Uy-dw**J40d!Dl0o4JznYAovYeNhj?T*=vvWqxm8=7(Xf{ADsT zx9*#{|Mht*;6>v2*-J`&uCAS`)lb!$m(sPR)6M2?6>kc=3s5S%EiNystoyuElECqB@E{>sm&88?`Xs*=@6JD}LBQ9dili$5E86 zK5U+&ffLCy@iE2 z8WhIT-K{XS9`>tYNc8X!ht&uqJXo8*zH(IOs=?JfSBrr>cuqlTW4ks-x<*=SaZi)< z0_i2L>vN>*q#LB?NiULKQnLX@X_Q0L2scSDkft1sS_@+u+NDz4aZK9{$%Yjnce5qC zR?o6+Yik!|1$EoMKR9WJkGiqlrtOKuIacs{1ttr-RwLSb_uD-)$mvdd)#Mq1k>_a_bgcf1AiW(_^;OI6wO!qO zXQSKhw_V&(4+VK%A>1&vxS_?3X53h6(X67FdctZXtoeks7`N)Rgry~{X2M#CTiRU0 zN>tYp)wM)*Em6IZ$kM3C+l$JDiv5#|4po?Z#uaTv@TNeGA*TE2+bF&-U!9k+X zU4QDQQOM!czQgVapOF5R^i9Ej3huWI&(#X8R7@xhxif!Eb$+A zHNh!uF@`S`On3`o@RxER}H))?l zrEtseWudhRl?pScQggiPi#)l>+03_=lYuHTnT`EnKLe;10(r1i>?1t#fF2f_4Y>-! z&)Vje-NA;;4P8Mt^4a`DNNZ+wv%kXkhBF(j`s}_1-`m{w(} Date: Sun, 21 May 2023 18:15:08 +0300 Subject: [PATCH 16/18] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20=D0=BD=D0=B5=D0=B9=D0=BC=D0=B8=D0=BD=D0=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/level_1/test_four_bank_parser.py | 4 ++-- tests/level_1/test_one_gender.py | 17 +++++++++++------ tests/level_1/test_three_url_builder.py | 13 ++++++++----- tests/level_1/test_two_date_parser.py | 10 +++++----- 4 files changed, 26 insertions(+), 18 deletions(-) diff --git a/tests/level_1/test_four_bank_parser.py b/tests/level_1/test_four_bank_parser.py index 4eafff1d..b446459b 100644 --- a/tests/level_1/test_four_bank_parser.py +++ b/tests/level_1/test_four_bank_parser.py @@ -8,12 +8,12 @@ def test_parse_ineco_expense(): text = "112.3 $, 40004234 13.05.23 17:23 Shop_name authcode jhtfj" author = "Masha" sent_at = datetime.datetime.now().time() -# Входное значение для функции + # Входное значение для функции sms= SmsMessage(text, author, sent_at) bank_card1 = BankCard(last_digits='0123', owner= 'User1') bank_card2 = BankCard(last_digits = '4234', owner = 'User2') -# Входное значение для функции + # Входное значение для функции cards = [bank_card1, bank_card2] expense_result=Expense(amount = decimal.Decimal('112.3'), card = BankCard(last_digits ='4234', owner ='User2'), spent_in = 'Shop_name', spent_at = datetime.datetime(2023, 5, 13, 17, 23)) diff --git a/tests/level_1/test_one_gender.py b/tests/level_1/test_one_gender.py index 63f4d49d..1909cb17 100644 --- a/tests/level_1/test_one_gender.py +++ b/tests/level_1/test_one_gender.py @@ -1,14 +1,19 @@ from functions.level_1.one_gender import genderalize +import pytest -from functions.level_1.one_gender import genderalize - - -def test_genderalize_verb_male(): +def test__genderalize__gender_is_male(): assert genderalize("verb_male", "VF", "male") == "verb_male" -def test_genderalize_verb_female(): + +def test__genderalize__gender_is_female(): assert genderalize("verb_male", "verb_female", "female") == "verb_female" -def test_genderalize_gender_else(): + +def test__genderalize__gender_is_other(): assert genderalize("verb_male", "verb_female", '254654') == "verb_female" + + +def test__genderalize_only_two_parameters_typeerror(): + with pytest.raises(TypeError): + genderalize("verb_male", "verb_female") \ No newline at end of file diff --git a/tests/level_1/test_three_url_builder.py b/tests/level_1/test_three_url_builder.py index b2c61766..66e493f6 100644 --- a/tests/level_1/test_three_url_builder.py +++ b/tests/level_1/test_three_url_builder.py @@ -18,23 +18,26 @@ def tesr__build_url__get_parameters_empty(): assert build_url('host_name', 'relative_url', {}) == 'host_name/relative_url' -def test__three__value_error_only_host_name(): +def test__build_url_only_host_name_typeerror(): with pytest.raises(TypeError): build_url('host_name') -def test_three_value_error_only_get_params(): +def test_build_url_only_get_params_typeerror(): with pytest.raises(TypeError): build_url({'k': 'k_str'}) -def test_three_value_error_no_parmeters(): + +def test__build_url_value_error_no_parmeters(): with pytest.raises(TypeError): build_url() -def test__three__value_error_bad_key_in_get_params(): + +def test__build_url_bad_key_in_get_params_typeerror(): with pytest.raises(TypeError): build_url('host_name', 'relative_url', {[1,1]: None}) -def test__three__value_error_bad_key_in_get_params(): + +def test__build_url_bad_key_in_get_params_attributeerror(): with pytest.raises(AttributeError): build_url('host_name', 'relative_url', [1,1]) \ No newline at end of file diff --git a/tests/level_1/test_two_date_parser.py b/tests/level_1/test_two_date_parser.py index b2ec05c0..805c3752 100644 --- a/tests/level_1/test_two_date_parser.py +++ b/tests/level_1/test_two_date_parser.py @@ -2,22 +2,22 @@ import datetime import pytest -def test_two_date_with_coma(): +def test__compose_datetime_from_date_with_coma(): assert compose_datetime_from("2023,12,15", "19:55") == datetime.datetime(datetime.date.today().year,datetime.date.today().month,datetime.date.today().day,19,55) -def test_two_date_is_tomorrow(): +def test__compose_datetime_from_date_is_tomorrow(): assert compose_datetime_from("tomorrow", "19:55") == datetime.datetime(datetime.date.today().year,datetime.date.today().month,datetime.date.today().day+1,19,55) -def test_two_date_is_chaos(): +def test__compose_datetime_from_date_is_chaos(): assert compose_datetime_from("202yhbmj5", "19:33") == datetime.datetime(datetime.date.today().year,datetime.date.today().month,datetime.date.today().day,19,33) -def test_two_wrong_date(): +def test__compose_datetime_from_wrong_date(): with pytest.raises(AttributeError): compose_datetime_from("202yhbmj5", 14645) -def test_two_no_date_str(): +def test__compose_datetime_from_no_date_str(): with pytest.raises(TypeError): compose_datetime_from("19:33") From d2ab8af57be99f5398464b33b1d34852ef2bb025 Mon Sep 17 00:00:00 2001 From: DianaRatnikova Date: Mon, 22 May 2023 00:51:37 +0300 Subject: [PATCH 17/18] Test one for median is ready --- tests/level_1_5/test_one_median.py | 52 ++++++++++++++++++++ tests/level_1_5/test_two__square_equation.py | 0 2 files changed, 52 insertions(+) create mode 100644 tests/level_1_5/test_one_median.py create mode 100644 tests/level_1_5/test_two__square_equation.py diff --git a/tests/level_1_5/test_one_median.py b/tests/level_1_5/test_one_median.py new file mode 100644 index 00000000..23f8b82f --- /dev/null +++ b/tests/level_1_5/test_one_median.py @@ -0,0 +1,52 @@ +from functions.level_1_5.one_median import get_median_value +import pytest + +def test__get_median_value_empty_params(): + items = '' + get_median_value_result = get_median_value(items) + assert get_median_value_result == None + + +def test__get_median_value_list_of_three_params(): + items = [2,1,5] + get_median_value_result = get_median_value(items) + assert get_median_value_result == 5 + + +def test__get_median_value_list_of_negative_values(): + items = [-2,-1,5] + get_median_value_result = get_median_value(items) + assert get_median_value_result == 5 + + +def test__get_median_value_list_of_odd_params(): + items = [2,1,3,9, 10] + get_median_value_result = get_median_value(items) + assert get_median_value_result == 9 + + +def test__get_median_value_list_of_even_params(): + items = [2,1,1,1,3,3,2,9,9,3,9, 10] + get_median_value_result = get_median_value(items) + assert get_median_value_result == 9 + + +def test__get_median_value_list_of_float_params(): + items = [0.6, 99.4, 13.2] + get_median_value_result = get_median_value(items) + assert get_median_value([0.6, 99.4, 13.2])==13.2 + +# Вопрос: а как наложить принцип ААА на проверкутаких ошибок? +def test__get_median_value_no_params_typeerror(): + with pytest.raises(TypeError): + get_median_value() + + +def test__get_median_list_of_four_params_indexerror(): + with pytest.raises(IndexError): + get_median_value([2,1,3,9]) + + +def test__get_median_one_int_in_params_typeerror(): + with pytest.raises(TypeError): + get_median_value(1) \ No newline at end of file diff --git a/tests/level_1_5/test_two__square_equation.py b/tests/level_1_5/test_two__square_equation.py new file mode 100644 index 00000000..e69de29b From 8a7a81f7097356f1f4d09aff73286202967dbc00 Mon Sep 17 00:00:00 2001 From: DianaRatnikova Date: Tue, 23 May 2023 12:45:07 +0300 Subject: [PATCH 18/18] Added tests for tasks 2-5 --- tests/level_1_5/test_five_replace_word.py | 46 +++++++++++++++ .../test_four_check_tweet_sentiment.py | 57 +++++++++++++++++++ tests/level_1_5/test_one_median.py | 20 +++---- tests/level_1_5/test_three.py | 54 ++++++++++++++++++ tests/level_1_5/test_two__square_equation.py | 53 +++++++++++++++++ 5 files changed, 220 insertions(+), 10 deletions(-) create mode 100644 tests/level_1_5/test_five_replace_word.py create mode 100644 tests/level_1_5/test_four_check_tweet_sentiment.py create mode 100644 tests/level_1_5/test_three.py diff --git a/tests/level_1_5/test_five_replace_word.py b/tests/level_1_5/test_five_replace_word.py new file mode 100644 index 00000000..ee33c9fb --- /dev/null +++ b/tests/level_1_5/test_five_replace_word.py @@ -0,0 +1,46 @@ +from functions.level_1_5.five_replace_word import replace_word +import pytest + + +def test__replace_word__one_word_replaced(): + assert replace_word('one two three four', 'two', 'replace_to') == 'one replace_to three four' + + +def test__replace_word__two_words_replaced(): + assert replace_word('one two three Two four', 'two', 'replace_to') == 'one replace_to three replace_to four' + + +def test__replace_word__replace_with_upper_letters(): + assert replace_word('one two three four', 'TWo', 'replace_to') == 'one replace_to three four' + + +def test__replace_word__not_replaced(): + assert replace_word('one two three four', '1234', 'replace_to') == 'one two three four' + + +def test__replace_word__replace_from_is_empty(): + assert replace_word('one two three four', '', 'replace_to') == 'one two three four' + + +def test__replace_word__replace_to_is_empty(): + assert replace_word('one two three four', 'two', '') == 'one three four' + + +def test__replace_word__replace_to_is_int_typeerror(): + with pytest.raises(TypeError): + replace_word('one two three four', 'two', 123) + + +def test__replace_word__replace_from_is_int_attributeerror(): + with pytest.raises(AttributeError): + replace_word('one two three four', 2, '123') + + +def test__replace_word__text_is_int_attributeerror(): + with pytest.raises(AttributeError): + replace_word(123314, 'two', '123') + + +def test__replace_word__not_enough_params_typeerror(): + with pytest.raises(TypeError): + replace_word('123', 'bsrbg') \ No newline at end of file diff --git a/tests/level_1_5/test_four_check_tweet_sentiment.py b/tests/level_1_5/test_four_check_tweet_sentiment.py new file mode 100644 index 00000000..6da3228f --- /dev/null +++ b/tests/level_1_5/test_four_check_tweet_sentiment.py @@ -0,0 +1,57 @@ +from functions.level_1_5.four_sentiment import check_tweet_sentiment +import pytest + + + +def test__check_tweet_sentiment__one_length_for_gw_and_bw(): + assert check_tweet_sentiment('g1 b1 g2 b2 g3 b3 ', {'g1','g2'}, {'b1', 'b2'}) == 'BAD' + + +def test__check_tweet_sentiment__not_bw_and_gw_in_text(): + assert check_tweet_sentiment('g0 b0 g0 b0 g3 b3 ', {'g1','g2'}, {'b1', 'b2'}) == None + + +def test__check_tweet_sentiment_gw_equal_to_bw(): + assert check_tweet_sentiment('g1 b2 g0 b0 g3 b3 ', {'g1','g2'}, {'g1', 'g2'}) == None + + +def test__check_tweet_sentiment__gw_longer_than_bw(): + assert check_tweet_sentiment('g1 b2 g0 b0 g3 b3 g4 b4', {'g1','g2', 'g3'}, {'g1', 'g2'}) == 'GOOD' + + +def test__check_tweet_sentiment__no_set_in_gw_and_bw(): + assert check_tweet_sentiment('1 2', '5 6 7 4', '2') == 'GOOD' + + +def test__check_tweet_sentiment__gw_longer_than_bw_and_nothing_in_text(): + assert check_tweet_sentiment('g0 b0 g0 b0 g0 b3 g4 b4', {'g1','g2', 'g3'}, {'g1', 'g2'}) == None + + +def test__check_tweet_sentiment__gw_shorter_than_bw_and_bw_in_text(): + assert check_tweet_sentiment('g0 b0 g3 b3 g4 b4', {'g1','g2'}, {'g1', 'g2', 'g3'}) == 'BAD' + + +def test__check_tweet_sentiment__gw_shorter_than_bw_and_bw_in_text(): + assert check_tweet_sentiment('g0 b0 g3 b3 g4 b4', {''}, {'g1', 'g2', 'g3'}) == 'BAD' + + +def test__check_tweet_sentiment__gw_and_bw_empty(): + assert check_tweet_sentiment('g0 b0 g3 b3 g4 b4', {''}, {''}) == None + + +def test__check_tweet_sentiment__everything_is_empty(): + assert check_tweet_sentiment('', {''}, {''}) == None + + +def test__check_tweet_sentiment__everything_is_str(): + assert check_tweet_sentiment('one two', 'one', 'two') == 'BAD' + + +def test__check_tweet_sentiment__no_bw_typeerror(): + with pytest.raises(TypeError): + check_tweet_sentiment('', {''}) + + +def test__check_tweet_sentiment__text_is_int_attributeerror(): + with pytest.raises(AttributeError): + check_tweet_sentiment(123, '5 6 7 4', '2') \ No newline at end of file diff --git a/tests/level_1_5/test_one_median.py b/tests/level_1_5/test_one_median.py index 23f8b82f..27f38d78 100644 --- a/tests/level_1_5/test_one_median.py +++ b/tests/level_1_5/test_one_median.py @@ -1,52 +1,52 @@ from functions.level_1_5.one_median import get_median_value import pytest -def test__get_median_value_empty_params(): +def test__get_median_value__empty_params(): items = '' get_median_value_result = get_median_value(items) assert get_median_value_result == None -def test__get_median_value_list_of_three_params(): +def test__get_median_value__list_of_three_params(): items = [2,1,5] get_median_value_result = get_median_value(items) assert get_median_value_result == 5 -def test__get_median_value_list_of_negative_values(): +def test__get_median__value__list_of_negative_values(): items = [-2,-1,5] get_median_value_result = get_median_value(items) assert get_median_value_result == 5 -def test__get_median_value_list_of_odd_params(): +def test__get_median__value__list_of_odd_params(): items = [2,1,3,9, 10] get_median_value_result = get_median_value(items) assert get_median_value_result == 9 -def test__get_median_value_list_of_even_params(): +def test__get_median__value__list_of_even_params(): items = [2,1,1,1,3,3,2,9,9,3,9, 10] get_median_value_result = get_median_value(items) assert get_median_value_result == 9 -def test__get_median_value_list_of_float_params(): +def test__get_median__value__list_of_float_params(): items = [0.6, 99.4, 13.2] get_median_value_result = get_median_value(items) assert get_median_value([0.6, 99.4, 13.2])==13.2 -# Вопрос: а как наложить принцип ААА на проверкутаких ошибок? -def test__get_median_value_no_params_typeerror(): + +def test__get_median_value__no_params_typeerror(): with pytest.raises(TypeError): get_median_value() -def test__get_median_list_of_four_params_indexerror(): +def test__get_median_value__list_of_four_params_indexerror(): with pytest.raises(IndexError): get_median_value([2,1,3,9]) -def test__get_median_one_int_in_params_typeerror(): +def test__get_median_value__one_int_in_params_typeerror(): with pytest.raises(TypeError): get_median_value(1) \ No newline at end of file diff --git a/tests/level_1_5/test_three.py b/tests/level_1_5/test_three.py new file mode 100644 index 00000000..f4ff4c94 --- /dev/null +++ b/tests/level_1_5/test_three.py @@ -0,0 +1,54 @@ +from functions.level_1_5.three_first import first, NOT_SET +import pytest + + +def test__first__only_items(): + assert first([1,2,3]) == 1 + + +def test__first__items_and_no_set(): + assert first([1,2,3], NOT_SET) == 1 + + +def test__first__no_items_empty_list(): + assert first([], 'default') == 'default' + + +def test__first__items_empty(): + assert first('', 'default') == 'default' + +def test__first__items_is_none(): + assert first(None, 'default') == 'default' + + +def test__first__default_is_int(): + assert first(None, 1234) == 1234 + +def test__first__items_and_defaults_are_none(): + assert first(None, None) == None + +def test__first__defaults_is_tuple(): + assert first(None, (5,56)) == (5, 56) + + +def test__first__defaults_is_string(): + assert first('default') == 'd' + + +def test__first__defaults_is_not_set(): + assert first(NOT_SET) == 'N' + + +def test__first__items_is_empty_no_defaults_attributeerror(): + with pytest.raises(AttributeError): + first([]) + + +def test__first__items_is_empty_attributeerror(): + with pytest.raises(AttributeError): + first([], NOT_SET) + + +def test__first__no_parameters(): + with pytest.raises(TypeError): + first() \ No newline at end of file diff --git a/tests/level_1_5/test_two__square_equation.py b/tests/level_1_5/test_two__square_equation.py index e69de29b..c670232d 100644 --- a/tests/level_1_5/test_two__square_equation.py +++ b/tests/level_1_5/test_two__square_equation.py @@ -0,0 +1,53 @@ +from functions.level_1_5.two_square_equation import solve_square_equation +import pytest + + +def test__solve_square_equation__all_params_zero(): + assert solve_square_equation(0,0,0) == (None, None) + + +def test__solve_square_equation__const_coefficient_zero(): + assert solve_square_equation(5,2,0) == (-0.4, 0.0) + + +def test__solve_square_equation__square_coefficient_zero(): + assert solve_square_equation(0,2,10) == (-5.0, None) + + +def test__solve_square_equation__only_linear_coefficient(): + assert solve_square_equation(0,2,0) == (0.0, None) + + +def test__solve_square_equation__linear_coefficient_zero(): + assert solve_square_equation(4,0,-16) == (-2.0, 2.0) + + +def test__solve_square_equation__all_coefficients_int(): + assert solve_square_equation(5,3,-26) == (-2.6, 2.0) + + +def test__solve_square_equation__discriminant_below_zero(): + assert solve_square_equation(1,2,5) == (None, None) + + +def test__solve_square_equation__all_coefficients_float(): + assert solve_square_equation(1.1, 2.2, -5.5) == (-3.449489742783178, 1.4494897427831779) + + +def test__solve_square_equation__not_enougt_params(): + with pytest.raises(TypeError): + solve_square_equation(0,0) + + +def test__solve_square_equation__too_many_params(): + with pytest.raises(TypeError): + solve_square_equation(5,2,0, 9) + + +def test__solve_square_equation__params_are_string(): + with pytest.raises(TypeError): + solve_square_equation('a','b','c') + +def test__solve_square_equation__params_are_lists(): + with pytest.raises(TypeError): + solve_square_equation([0],[0],[0])