From af4748536846bb88b6b377a786be04c57331b892 Mon Sep 17 00:00:00 2001 From: "Gavin Sidhu (sidhug9)" Date: Mon, 17 Mar 2025 18:44:01 +0000 Subject: [PATCH] Add files via upload Added test files for software tester role to ensure functionality/ usability of our system. Will be working on my final feature after this - leaderboard for conservation contributions to community and as long as everyone has done their work - the system should be complete. --- 5005CMD_new/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 172 bytes .../__pycache__/newApp.cpython-310.pyc | Bin 7058 -> 11131 bytes 5005CMD_new/instance/komodo_hub.db | Bin 28672 -> 28672 bytes 5005CMD_new/newApp.py | 7 ++- ...uthentication.cpython-310-pytest-8.3.5.pyc | Bin 0 -> 1949 bytes ...sging_feature.cpython-310-pytest-8.3.5.pyc | Bin 0 -> 3123 bytes ...ser_interface.cpython-310-pytest-8.3.5.pyc | Bin 0 -> 2154 bytes 5005CMD_new/testing/test_authentication.py | 28 +++++++++ 5005CMD_new/testing/test_msging_feature.py | 53 ++++++++++++++++++ 5005CMD_new/testing/test_user_interface.py | 30 ++++++++++ 5005CMD_new/testing/testing_access_control.py | 35 ++++++++++++ 12 files changed, 151 insertions(+), 2 deletions(-) create mode 100644 5005CMD_new/__init__.py create mode 100644 5005CMD_new/__pycache__/__init__.cpython-310.pyc create mode 100644 5005CMD_new/testing/__pycache__/test_authentication.cpython-310-pytest-8.3.5.pyc create mode 100644 5005CMD_new/testing/__pycache__/test_msging_feature.cpython-310-pytest-8.3.5.pyc create mode 100644 5005CMD_new/testing/__pycache__/test_user_interface.cpython-310-pytest-8.3.5.pyc create mode 100644 5005CMD_new/testing/test_authentication.py create mode 100644 5005CMD_new/testing/test_msging_feature.py create mode 100644 5005CMD_new/testing/test_user_interface.py create mode 100644 5005CMD_new/testing/testing_access_control.py diff --git a/5005CMD_new/__init__.py b/5005CMD_new/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/5005CMD_new/__pycache__/__init__.cpython-310.pyc b/5005CMD_new/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9fbd40910cfec68864f438d2146f3e77cafd2fb6 GIT binary patch literal 172 zcmd1j<>g`kf^P~p(n0iN5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!H&vsFxJacWU< zOnPEjab`?FW^zesQEG9FdtzB;o_euDadJj}evU$Ueo=NzKxIirejbEvYG7dM?CTPr lms%bZAD@|*SrQ+wS5SG2!zMRBr8Fni4rEa=6OdqG0014)D&qhE literal 0 HcmV?d00001 diff --git a/5005CMD_new/__pycache__/newApp.cpython-310.pyc b/5005CMD_new/__pycache__/newApp.cpython-310.pyc index b67d82cbdb662ba08c46e89a14d53676ce4cdfab..de595668b9cb2b83847631944c166dc5f66f0e8c 100644 GIT binary patch literal 11131 zcma)C*>4@!d7tg>3oj{(lDxHb77~CD8zd^3sak4Nv$Upe=}p5j znkg&QOk3$@#>zCaR#v5cS|iuYTY0YQjY6|%6`Lii)GS-&=7=@YtXP%is5Q#%Mq{kG z&)U}kZXB=vU}Jz-&MqjsN7RT#eI71$X(q!3dpD! z17s|LJPXJ^F%HN$LEO?^!+H+2=f$|#FDAr+`?`D7e!)Gwc1#=;hwdp@?YKKBfE!kM zQap7}v0el=FNvqcVew2|6XtzQ91%yk=Lv3kcBth!QRbE@_sOl7#Pi##J0e~X#|Va* zrx|*jp_Agp1Ue&L5+|_ENp79u)@d=5w7$%1oW$BHt&RC!7N?T7Q{48-P}{5Gbkg<; z&-NP6_C4`>0)3UCZ)~gLjChk^)@g>!Qa|^kcFetO4!Lfl-}zEtJkq37JT@0)vdL_eT4*@_ zdNd;4mT;vVxXn((3EU_n-5+&bKZvr@6`pjfL6qsrhFxpRC{@Fl)hOkxv?ai6e!Jz> zHYU|5zx0F4bB*e%+uWE;N5#wSy4Skmw4Aytqul$xE3bH;daWqmpa#1OKva(Fv>H|s zQ322GZV)#Xt6d4i;-^V1ny9-iR{}k|4{pPyTvJ2$s< z!G8bxr3LHoP|Nc5x%v0(D_757TDUYnw|wd9;*wSNyB$~hZdJO$y1QZJmoCg-zp!k- zci~2q;*C~`?8Cnl9^S#_-$dammMRoW6RM@V###zjT4+MQuUVP+c`GXnu!$y8B7I-C za!Ic|AQ|*3^m}E8dKE=(Ntw(?>80vwyWOxdKHvT22dY)*NU!P04IB7A6u@EOffl8^ zEf1$3Wn0}w!&zy#4^(*=Z4XbOSez_HS=(+oP1m-gylsPa-3HZ*w*8~7(@0uMwjI#e zVl<|Z+ef3xn~^1YkaylT*uu7C4g=a$zx=9}>rP4LM2&1)OMYP%KJPoF$_ zdj86JyXD@#iEFOYneJ@JLztK@zlb8M7+OW0P%G*aDz|+5q5T88KmO3x(yoyl+|Fa$ z4bLaXS>WTvkn z19frIko(aT>8}qnUtr@AiPnl%c2<$AYV(eGPTu}JSn^$afF3Gua1 zHxz0i(z>-!OpD7cGC#(za)S2-D)QI-o_badC3LJc17LC>76A z@f;P;Q}F^7$EY}tBFZnsM0wBMkgpT;4JuxurcAXB$!i5x_B<5gGH{b;0Jk#dpch;R zs#&^@SPGn=>qkZD!W4MzmcQzCtaQ9VE7#wie2eDo%jDpEf#7N>*iK?u}1 zt}$&)Eo$7Sisl`^zBc?4;KvKrqqQNR8EC(h$U;04kpe8ou)HWhL=rv8f>{(r)|FYn zONnrmp-*Y_2m}aDkyQ~R;Dd@h4YaHj3rQ?753d2TAfH0{@DC_hY#xrI7G?aPD?sZ> zjdiDd6~Hi`s9uQJ9+srdGfNWH_Oj$xDWG61hUr<71v9LiFz2e(cDEIn%Nrf{j48i| zanRl@#H>sU(4N$R+U1*Q9Xc&yK0d*-s4(A6s9}kwo*ppW=pV~;k|bHaiz3SQY_q&b zFq%Hf#oM+$!F*_qcVxTfHQf2GAGDjE&usSX{6u6Y^7&&Zdg^%`Dw=o-yu`^#vURYXksE)PzfOITUr2VzpIiKlP3X$9;5l96fB_Ji1fM}M7oD_RILo1 zJZ)mY^en@rI#4X&<{?*iF@_0ly!3I4g2FCzjET#$ve-H)1*l^N;RFJx(f48N4tC5 zqn>ZyBHVcEgxL4dE7s?_yiVKC%}BTI`M}50-@ULL8P~2ZEyGjHG+o$a;qTA@q?0M& zV5E`ek0H*D+ zIxXQe$SQ3B7XqK?tq@3vK&u_BLS;Q9z6rIPB20Y*R{l8r#JrY-2xb#X#$0j9RugK$ zPLxRqPGIV41KJuGLy%UWUTG)Tezyb7S*86n+yF#L)}D?sw;kDn+ZvWSE9;_m>WshY zoI3p)SUVlFHq;2q%z)lR>TvQp?-oG}3~OH@FzKsU55AL$Kmqt*i9}tW|l%&bz4HS_9FQ^%%eE88Fd6~dh2%LxB=(-oAY)ckKN%AGh%E&Yoq~+v$D54y6 zF*awfY#_GtB%(eYe!IL%ZLs@}tggyY>is-HGCrI}U?1s@fcuUkZhC>#(KMNP)Sh8g zKZObau~<)7Ws2Ec(K{b23qPD&cIg-SLrh6H_@w*udRe8vroNyS)vT)hA*qR4ZB$HG*VSo*_)n>-&6 z5X4L(e7Uv!8VN5u5?e(m3w=|Umx9u!z6MorS3`YdQ>R=FX2?Oskg}l}3dsydEw=hKp zDTv(+LxR%6<&!@aGYqi-F#~y?aV@W9)i6KP-*6Rucl`Q%K?2+7i$Vad2oM_FhgD{% z0mC!_C``-{G!5txKr?-)F0y=jxkX7T_v_KbF|-K>&)zJ5M8tyn%9;EDwZ6Xw16sqXgKQw+c6P44j5Z%%#}pAy$hFuLZ`WQv$vt zxb0?#fnU|fH%iCYd`SzF-bx#Uuxz8c!;K=Zi!h|iCt`f2)EK*a**oec*+C<`dL6+S z+@!#a^9tq)RJ$;tiHV&E$o_Nyf0;zc6ke?cO9&Uc>U5kH$D@pqZ%!q{clvRJ0P)T~ zLV&{QK=~Zb#AnK9Y7HqJq1^)?B&g_%Rdne8dP6Db_Fq6j3?{RriauA@by);$L0J_O zZYrL#ss2{|1?@;%luh(bPT#7)A#=Jgh^@e@!eJCKKM*UxpEDd;_oMVWELYvfvs#N_ zRN}mwO#dy!*dC(cpxI!cpAj+?W)u8&rS;$ zPNx&JsPW&nt?VT8y3SPT|UB zFI=Q)5f0h0UPcOrBqvFZ`0`VlXCTEyUB=|^QSlF>Nb3_Y-4#vyCavemoPT5J+W#4b z2E(5IhWm!)K9y%E>9B*;bRH>OOzM9@B__2%{Kjzs$Sy!KjuX_tAc9dIXA@bSuMCo) zO+`Mnsrtu)RNri;gG}FSXV-E#xI6`4ceG7SzPYKb6@ubgVO{g7UJ_X-_yvs4CB}Jp zbeVec5#{gecl3Z}gOO)%-4KOM9ata=A&(s`753dzF!LqWphGiF!qjux=51`T`yz^e z|IPM){nHn)&G5J2N|_1CO(b$0#QuYv(_3Nw1pIE!^Sl*4d%f4fE^Pug9qD3BBDArW zKnx?-QG{>x+=>3I(|rfEO@U{^Yi44|d=siNu~`1}q&}2&BJ{(N9a%%Z!h*s3*?6;TieCMQIQz2*Z7Z^$)|OS2BoxOx1y|(A4*=S_Dx=o{m?QXY^;8Q z&fzlyww}d4&Lm4ApKumYva>TG)U#&H=d&0d^EvpEO-Q0xbXkG($d&=QOVx(^2)=?! z0f!ZYE(|ZW$50hb%&`n_o^yLKm5T$FVC9kKu-npp_2jEDi3VyRi;?mjDh8w`V#*u} zBw_P|jZj?AndRN|8^t?@^&b6TE*$aC80;5O6ybto)pSg#p8^mb7!V5KomV4UMrp_$ zihyEPQU*+*qo@#p*5HJ!8KgJwYg;MStZ7mK2^oyV1(*TmfOjw=Dt23hip^FZ!3#4B zMMSYT+9yGj;vVsaRrxdOu~W%K`+G##f$_hgC!3H7Y*OCC)7R?Ej%@&>&{@+qeovH! z+ZdmjwixDC+fBFUA?j!xT9wyl>t#@{|3oWiUb4FU9QAN)CXvp8r_1i=p4EFq{5>58 ztqz|K|uvb%yGy=jQc%NrkIw0h8s4NsFxX@c`)%1a|LrmY!nnS3KY8~ zRx};HzhjfhB6~NPkkf4P3(Y2Ju4JdISve0uB&yXun#PZb4OiwOkdSLAzv7`ve#ejL&;VaKN`36F9Q;ys~}KgSScNq?O;@#EZ)MBG8n+Vi7GG`4q$0p4bT$Y$i1M5cp13AdU2 zP`vae39sZIORMg8(P}AvZDC%cGsUFlb)IyHV3z^}Mu}cK6$6QLL8=}Db zV11t%#qX{l`;`y@j!+F6u^}2>4eBx(N6Hf{SzpB+*-V&zSJs?r!hPZRF03C%jgejb z5B90>OQOQq3@?Cp0C)jv*O8QeyzKnsyXbI<@QtT4-=*n>=m1W@8Q<~{B#_J5R|r!O zoF-U;muK||S2GOJi=t|`Rfq7A22B`aVh_rXBf{vO5l8!E_$wmA1VRUVJ>uFu-a&{5 zW_}Dyz~(;j$Z?F%w~OokM-DmxlwzA~$iF6}QZQluUhzb?*o`4mEaJF6d~SC2<+J?q zh*IFP+oEhUh>Qb;eZ^2+oUTxj@+ z4K5RE25K;rsHJBSH^C#whR5fGfT|y4FTUZDWz%MoeX$`NKAfP9%-q(YG{(u2K0eU6PCfYF=0x$E8Y6!d5gcBT9;(G zVk1xIJ(Q5A6hfT0BhT8Z&}UZbHa=5w;%};Cp1_3|jI5Z~k_8%4q@qLxrS#&&8u<^= z=xtZ7hiu$7$GAD)v(`LB$aii2FMo%J8>pUY)&vtHkSK zbNp48mBovoz(y}C`Karb=iatbSMa?~gTI}LeQJ)(=4e`SXsiO|3~YL7iX84Df$vap zo!U}ty*YCqC$3#;YEwZe7|sw#il^jHsklc4IlSy7vhTxA1e-{<3zF2LB&EPY$bw*% zoEp9Gpb(fcf_!ELYy+VH)ZM2+l*cz*@D*&h1(6Qv8)AlmkY#7%Z=cSB2^9Z#D2^jF zY0^t+gfvJv>v<$O@)X|So>s^7vE2CBSjoVfi>#5=Dyh6$IgI)~jYbr?%w)@SFPFGH n$gn(@X&Qwz3DPFn^xivW$a25ECDt);<@30-!{1bNbed z_w=N?hhSqEA!j8dHiA%qKyZi;NSj6CvNvvU&R@_H9Job@FClRNq2;|A$M#wgw(51& z`>I#(z53Ps=iZMl=lxtxkHKHho!_tjYw}5cSXok@oH^MhF&d+at9fZNE$4Ap_cCV2 z%bHm)XXd=TnfJQPF0Wt~q+E52Uborp^_V?!op4KDuh}c-Nw?4JV}$kZ60=NGtXv%b5>?RpfWU2L#Ex*Ipg zfK#AF;1rR=vb(BTVMFzC+D&^N#lY1G_8KkiqK97E_b6tbgsmoMKP}UNb%hQ-R_G8N zmYS1NGJ=x!zG#%@r05hYKb@dsdxYg_g^nW+Tu({v3CVqpp4{gebb?O8M$=MyYLCz< zYDh1qC1)D-*)%=9OXwLo)3E|?XQXsiN}Xvs2ja8z+<|yTiqG#G&x7;=y?7v!)vQDnBHA6g1E8#eR?_F*f*gUM$7?r;86EKluL@7+`mS zUZV?-F=xqDIgG^@*d<0vd^dhWJdgied`lf5rud2K=}8bQ!3Y}ScgYFyrrsx(6O}Sk z>p7aHI#p(I)=LIp*$9ggKtBW|YF?CK_GHB)u%?JYCY64?6@LtgzD~W>s^yV-K%|r`A3-0nhSiE=_$Zd|6FFpgp2XR&c5~cPxG8B2@ zC`DP#Zn>fOyZ%Ar-(=BHA`LxZ)KSK+R{d5Zyt~z828q;wxwZZ9(CaihgcEYsyg}R%&v;=D6&wRuKB06UY?u3m`fYn9Lx?!!b4EFoJF%FB4dTB$gqKS%s^pAnfdH z${;I-%7?|zvX#kB1whg{V%qg>YGGDp&=sDspzy2WkJ;z*82^!-WlD-pV12`OosJD= za{i?qY`OU9A95d&!8g%RT3^H&9-Pl2xg>VGzE2iJSK$-r@!u9s7LI9M5`QgRX=63F zbDXU^K?ps$5qhps<|=x)2_#Z$KKG(T5OSx zVf-@8qBNu#JX>p9QKIJXAdKQJYw$NvmJAk{&8r){fHs(5GZnBPfOd}JHl=2=>U*9O z@;Hc$)bVp(5`QYrjD9}L{06Av#sL;nSHw*BJh>t4?(z^i!SNPKe+ndw)d?k=3SSmR zex$AL03rq_!UR=mVpk!tFd3$35>awB7Hai$UEhh()MN5AvlsievZL@DVRlEU=XS_0 z&htA8LNwTGG<{&N@7pH;K{{T$Xcj#hxfOo2dT@^Ify$kREP3VS<*8u)?QoV~hk!X& zi!TVbr%Y~%4|~4YE*zGM-$vmwlK)!~eg{?FMp8r~`zDJsndSIlmLnCTIM$XjhW9`{ z05r%$hVvv(G@_F%=@y%%56P_fM`?h(BQm|$Z*`$t*^}s-Ye)|3C1>(}t$<)1h6E@* zo|W#9xKT8N1hUhS8Y? zxMg-L+yK;cs&>c#Jj7c6%53(7|BEEkc|pB;JSz5fFbG~X`*RyZoKc*kAW#u)Sbu^z5%Q4;#{+} z<~r3Q0o;Xy4v+9Ehz)gn;ieNbU3)92K=msf<%;-te0mAnyORn|ar&wp6gmcnDflI7 z){r>j&y)8~A2X6mS!6Y2LHH|Bl!Z|hUKj4EkIAy=othADPc7EW)CRLDJi`VtHO_)2 zyzcBs5YkHt@X-obwZ)xq%i1^i1iflNbm(`TsDy9A0v}h;b{dv-7oOh)WoxZ< z)U;t1YOWn@TEPR?cA;F}7EgnPndz|M7C8;B14k?w1GmlML&i6^S!;dv<<1@GMj$cM z@_xXNoq+eiT0*>hu+2E!AH?!T%~|K;;y1?Gb}woSqge()#=^G|u;waoq6GZd{`{)TIc81A_1pC1IS4Lk_tZifO=ZIlW2_~z$8g`yp&e6I`B26 qpz5SB0`sDRx*186nv^OAC(#*mv)hyA($k5Cv zHPtB5%+M@3HO17>#LyryIW5^ZDa|~|BstB%%rwQw#K_FRz{~`s+OoK$G$l2!gbU~z zM*eRM{NI31Z}6@M>gndyROe%7 zU}O|^FC!?n& yn6h@{U<%2|ELH%bM1>NdhZS;Di;EM}Q}y8Hm@62XSQ!~v8Jp;tTNs-dTL1tHYfM=H delta 1733 zcmZvc&2Lmy7{>2qfKF#Rb3qabAc+aX!bI`B=lgVHu+SD-nc5CmiVNTKMF(11m=38W zWa!GsN^oJKTbCw=5KUaWc1eP}u3WhG5AaOeAq|<6dvj0jJ-NTAFDmDy*u{f*qQ1N)f1KHFSa)- zy7D$C}&cBSoFp|b(&_O6d~yt9l{$Z<*fqcP1@cX4xRqB%L&`TBFC8_Z~$ zmKknQM?|R%Wr|S()PVHSSgNIz4wSbL!J%i8Go{dL6_J8nPrzQ=ZReG8c7FS2+C(4T z3h0)@13Fa0ik)2V%&lDt^D8r#*Tanl<3T#2qOj;J7^)dF4j54H4KYX~@et5@uKF_3 ziAc5b(M#?P5a7LyJ=}IaIz+^9Bj|OtIXh*WH=1tq>Q%VdK(0{ z7qL0Z*Td>$xQ-2>7@+dr>tH;kG#S9a+bDrWP5_1SDsqSveRL8iD8hub5-ccdx!s3t zjg+&KZ(KJ+?Y=g{dJh+_J-Dtq5A~%Dz0e3?gy%*o3??w@cu>I-M8lOg3E@rhTLdL} z;KE4DM0CzT2o@nQ{|0{aAY2ZG-@aq+F3k2e^<)?Cc3YFP4R8^?(^4BrG)=LSK+;c% z)4_904X{?qAo}}6nN(n?tiML5#a-0byJZfoWiXHb&e{{H?=pcOf@ovqy_S&ks*=k){UXtC-hTuJ}wI&=iXfH(? z7#X+PYGxz4Xi_1DAeaQ_Q0pM0$0SCElz9?6fIrR$C#%2nd$@XeXvxjP{L+@0A*~4l z(|6V;8d9ZZA|(jRAr%$zMnl4LEtO5J%`q*MvsOSP+A|?idt-uY13Dc{@Y?J#X>@__g?^xK;3Cw7ygSt^TxrtNwAlRC}G|{$6|edi9_D(<_uv@eyI^dY_VUp~rz- fP*fP8=kt*)&yQa$mmW>G-&zLaATEG5f|&mS@jl`1 diff --git a/5005CMD_new/newApp.py b/5005CMD_new/newApp.py index e66a5de..e14d081 100644 --- a/5005CMD_new/newApp.py +++ b/5005CMD_new/newApp.py @@ -1,3 +1,5 @@ +# * Gavin's Code * + # Import the required modules for functionality from flask import Flask, render_template, request, redirect, url_for, flash, abort, jsonify from flask_sqlalchemy import SQLAlchemy @@ -185,11 +187,12 @@ def send_message(): recipientID = request.form.get('recipientID') # Retrieve the 'recipientID' from form and it should correspond to a valid user in the system that is logged in content = request.form.get('content').strip() # Remove any leading/trailing whitespace + print(f"➡️ Incoming Message Data: recipientID={recipientID}, content={content}") if not recipientID or not content: # These are used to validate input - make sure not empty/ NULL flash("Recipient and content are required.", "danger") # If it proves to be empty, it shows a flash message to the user indicating the error return redirect(url_for('messages')) # Redirect the user back to the messaging dashboard - recipient_user = User.query.get(recipientID) + recipient_user = db.session.get(User, recipientID) if (not recipient_user or recipient_user.id == current_user.id or recipient_user.accountType == "public"): # Make absoloute sure on account type message account restrictions @@ -198,6 +201,7 @@ def send_message(): new_message = Message(senderID=current_user.id, recipientID=recipientID, content=content) # Security check to ensure confidentiality and protection - verify that the sender is a teacher and the recipient is an enrolled student [*mod*] db.session.add(new_message) # Add the new message to the database and add it + print(f"Message saved: {new_message}") db.session.commit() flash("Message sent successfully!", "success") # This is a flash message which indicates the message was sent successfully return redirect(url_for('messages')) # *Redirect* @@ -321,6 +325,5 @@ def add_security_headers(response): # Run Flask if __name__ == '__main__': with app.app_context(): - db.create_all() # Ensures database & tables exist app.run(debug=True) diff --git a/5005CMD_new/testing/__pycache__/test_authentication.cpython-310-pytest-8.3.5.pyc b/5005CMD_new/testing/__pycache__/test_authentication.cpython-310-pytest-8.3.5.pyc new file mode 100644 index 0000000000000000000000000000000000000000..409fbba856a8e5c227405e6bae534887bc006f8e GIT binary patch literal 1949 zcmZ8h&2QT_6elHFk`*Vhldf4$3yKY^fFWs`W*vfVXqEOo!aE!a1LhNdg&Qg1m}#)#V8Ys4nbYjlo-4~R>uuTgNF z-~;4)e}ivme`v0+t@(yDqoR-oIr6czo^#4zU5-06J`RhB^V6J>uoLl4tPWj$7zp)L z#pEeWKf_Z6>Vl*95ivDo-A4jl8WS{Dt2sfx-oQv$mz4>?FhVb27FO53bkrXBu3Enb zXe{{8P4%1uw1N2gDaIhd=p_ur^DFz!z-jIsG#~Fj8ZPlyX(H(M`uh5IkM?pl*bY_> zzJ0RuWcQoBr!T{YJI$T1cMkT#=ifc{tIPmrr5)#4D`^LFf^reYX+kp*%mEG|2n0P7 z%mlT-iy4gs4Wl%b4yT+ac_wWJMowtp5|$TA1bEry6@MV6vg7U1?)ITVk{`CC6P_GC zOJdPylpj8dPLk|XzRKfHo~NsT?eXEWf#~E}NpIc0y|w%FVVKd=L*-hMwe=cCebE6Q zlQlV^C?#cJ3vd-&!%tr4q0U46-!di^nG=o* z;tAq+Kwcdg6U^=b1sW5aVUR1@glw)|7}wFbLgvZBsFGlyZK0&Kkv+lZ_!p=c3ym#h zvpYXFi8*$}!pIys=f>C_x%_vsNb2vcCCZvu0Bf1DpeV3bpYdm?G_*fIDvkg9qj}B* z>(vGS8W$DtsXFzkI^&ZGemP@Tr{U86u)5A@JK=(|z*Pb3L(~Je3Dm}&&AWjE90GCk zP3bC87WJrfugVHCE{^klCYpnSHlY$N5{W3NxAHX2PeVpY!e}hGk68^u=Hs_^!dJ6g z_;`5zlUv2$w$E2f&Z^pO`dnJdj4Eo7s%dk$07Xoh&>CBy0nDx8!3^`B&%Gbic_3E5 z)Ov97t?7-W2(F%rHhjKz^#E`D+10haH)hZep*C3qmH@15uqB|_@^pL8UzApnbHOa& z$jYleWrLvFN>V^CJQ~PKD`8wn??ExpWf?Kq2xBNPK%!uA-YX(TWevpPQ6Ekv8JBjN zg9eu$hP;#aQ=(PFcA6hWX{gbzhCFIfb%R{k(MUi6?J<@!xg54~){8_)&x$n4bZN19 z<+FZ?rzLqi^eu>_l+090|DQ~xFQ%Ql25epLHa7Hc{cBkEyQRt*zQF7wkoqgqy#j~bP`BI&OE}j`ld5|#ddi?< z%IbTTbf!GEqR!am5oz)Pmqrd*RYamAZ9p6{NjlLH*9->|v`pzRggDYL3~Xp!J4K<} ztZt$@+Ck%#vg0A`x7Rq0`(S;bF_um%Ia94sL#<{9 literal 0 HcmV?d00001 diff --git a/5005CMD_new/testing/__pycache__/test_msging_feature.cpython-310-pytest-8.3.5.pyc b/5005CMD_new/testing/__pycache__/test_msging_feature.cpython-310-pytest-8.3.5.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ac65ea7213538cb36d72957bcfd786a4615eb0f5 GIT binary patch literal 3123 zcma)8TW=f372a7cm&=<(U96iOd*j%(S+tTZ*-atXK~zg{4A_EeDQQCp*seH3YUSlF zGqaQ|c8Ok;hrR?c(7shI$cH}kKlBF#$R8-C=u@Ba7mOt6H@l=tyBCzi%$_;t%$YOa zIdf*ha=D=4_ht33&A$~j?H_6|{>xzSKAQL$I;v6PYc-O5^;SmLh}JS{S)wGmZ?*YL#ncqOs!P1T|>(Q|*-0CaFntpK7%VB|BQx`UTy9|2*ZDW>qz z{R*B(+99F(J$RB(#yu_4`uafYsc&YWeZEMv$mnMW*j223gg!D3&3;ae!MD`+C)lZh z|7k|;ZAZJUiIrnQAR*evXo^?OZtu$6?$*xkqwR;?Y4M5gMQnX#Wo5m^S|LAKm-9P6 ze!TJc!3SGUK6W-Yb~k>sv9slT`0P-#b%0FxI6(&Sj=h)Ij`u&qRZ%uG%ES>scf_iF#a`kn$)>^0pZ;q5*3 z>QRR?vG>qD@`4+}7WIQL^lf1KeDCQ=bPxt9efQR_yAPghIsrT0Q?7YIGx<6#(FE-@ z;0_Eew@-Kl3uV#7EIR#{1-(ElqMC`mK(2nBXw+4pM!!iAd9(*;;-}al!a@exOY->{ z0-z&+8LFQWnxV#LnH~WrJLH%NM@P7_eKRHl1Y}6-=kzd)&`1Iq>{XUx1oZR6rnCv@syb zH#;D7`Ybc2^>P@`(;19s=QVmE&Upk}D_Q`5F}4Qel>C~|IYa9iXeK<-`b$Xfsh-+b zAMfieJ7#I!0_6c4)i84o~PF_{ths` z5lpEuKxd#9*-uS zQ{@SM{b@X+id+3|cgxtQE| zc2C+&=Fcsoj71%aCA!6(#IpTpbKUM%zGpuhEuM1B6+cAD*{$l*pl;;KN+b0B@Yvyu zdN3D>?&4#mVSnWM9yCxI?VSkaNxo?mct5s3> z`H-;h+lsnX70V(qg>p<;p=aMu1$V1LT8Up+6dTV#w}x(2QFptgbk&CI`HXfeh4+9L z<56PsT}*}2yW7%o6kLu+rRg+Kln=TSE5qQ36$N*9e)qsb1O%d{its3O%fO;|j^v|F znM*DUV0n3Xh1v>JASv2mAlSd)xb&apDJI>e4d1ti8c7}~y!Tzf*6k|c*ML}e<{68) z$Bq~sDJt136FvrE1Ssc*xGAr}Nw&O(E$4rZ;9J{Huh(d%_rQm4k zH_!v{+)hH*UHKnD8{+X=z`7Sls|}@ze=Rpc^3v+noK z699m>N4^2akhA+Iz{2Cuxek@;WOBvx8PI$|b(ht|qS{L8%kA;Oo!XdWEtRC6|6qLZ z!xVT6CnL$?T1jCwOe4W>ys^aU_}n|m^C#`5mEu$axjIxM3+mY-w$YXJX);Yp_^ap2 z0x@-i=)@q#H@abdUCGXp-zAa)x%91RSW5P-o-x0v7_&q@b_!&I%%c5pS`DEXQG5|RkMJE Jfqj(<{{%gzd?x?^ literal 0 HcmV?d00001 diff --git a/5005CMD_new/testing/__pycache__/test_user_interface.cpython-310-pytest-8.3.5.pyc b/5005CMD_new/testing/__pycache__/test_user_interface.cpython-310-pytest-8.3.5.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ea3212ed53e68fa56d9a57ebeb1d2c300843c362 GIT binary patch literal 2154 zcmbVNTW=dh6rS0e*Bi%48k)9TmqJO6N}8mEpr}+Sp#lM|s#XZevb5TG#`ZSrT{APz zjr9xg#9!bd`!TQl2!2DguRNgsg*eaGqav`65%y8N{L z)F$LF?3{iK=xo9(zXV`}(U{b!ZjG*K5K6jM-KIEV#7?(VFKL^`Zrx=jvwkA=GP9Wj zt;b5tg?5V3$D~$%2J4XrHJX?A_%;*KE*DL7ojeX0C3v^sm45&zGNdCiAQ>4NjE*QJ z${bqEK#Q3Jnvo~=z{qH3?2>_*nex7Jh9zcYW{WZ#{Vii;fzQq0Yv!o(&>N9mB3HpT zm5~t@>v|Nd1jlhEtj81t0TA; zM&OX%gX4=GrFt7TZ?3GaFD=7wWn*o5dHHWR4?Nc9q4!nVOXT==Y=q{8qU`P+(?(2psfl z5x7IIpthPCRpK%FN4bEdobXVRR;QPKm$(5m*qP z3}+`In0g>gIL&c6j*=Z;@qJadzfRjx@(hV6py&{R=hmqfWwfRdssOb)%~mmkj#+@b z(uxum@R)abqH?<#N6j5Ehr<^T<`G^&xQMWTa0%fu!WD#95ne-h9iUdyaqIIjZs`$c zk>E}BXlJ|R#S#@5kaz~nd4;+sd9Q)%{JiHd z`qFvFvUfJ`A>^hE8OOYrUdX%qA9;5tc`p}vhkg|@4^e(0Z0a{;MCB4;Py)wXn1LCy z=Wt