From f3d2cb1e47c7f62ed3111fb79fd0e84ce156bdff Mon Sep 17 00:00:00 2001 From: 2000-Trek Date: Wed, 16 Aug 2023 23:02:36 +0200 Subject: [PATCH 1/3] test favicon --- Website/__init__.py | 10 +++++----- Website/__pycache__/__init__.cpython-311.pyc | Bin 27553 -> 27232 bytes .../test_website.cpython-311-pytest-7.4.0.pyc | Bin 41146 -> 42139 bytes tests/test_website.py | 5 +++++ 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Website/__init__.py b/Website/__init__.py index 497fcc6..1c585ad 100644 --- a/Website/__init__.py +++ b/Website/__init__.py @@ -1,5 +1,5 @@ import queue, time, uuid, json, logging, datetime, os -from flask import Flask, render_template, request, make_response, session, url_for, g +from flask import Flask, render_template, request, make_response, session, send_file, g from flask_socketio import SocketIO, join_room, leave_room from flask_session import Session from markupsafe import escape @@ -49,11 +49,11 @@ def create_app(test_config=None): #website @app.route('/favicon.ico') def favicon(): - return url_for('static', filename='Logo_CCC.svg.png') + return send_file("../static/Logo_CCC.svg.png") - @app.route('/socket.io.js') - def socketiojs(): - return url_for('static', filename='socket.io.js') + #@app.route('/socket.io.js') + #def socketiojs(): + # return url_for('static', filename='socket.io.js') @app.route("/") def index(): diff --git a/Website/__pycache__/__init__.cpython-311.pyc b/Website/__pycache__/__init__.cpython-311.pyc index 385456ece7513003a871ac5846908e23a07b5571..d5af4ffceba46610e64b7d2d30de4f890f948b4f 100644 GIT binary patch delta 2646 zcmb7_ZERCz6oBtXd)xJs^@FWr>$-ItD|GAXzF>eG7DNPO;0WLbrQ5x&9bG%$d&@_e zbSi@tqkOyxYGMfd838nrT>a+{jDH9*1QR03O^p7~1b>*|KSMP5o_jkebfDg>&(1yP zJ?A~=yytB%-lc!OLt8IdttN^*zc2fdKYPt;rA-y0kmjTDWJ-`5>91My2uD#T94DM7 zTp!{5N)O)Uv2iCIlAfaQ+Vw8HOuy3Y7$mUK;l=x{@e z7vIz`XC32aJm^`BZCo?!xM0QC=tjJYtE3%xoZA#~%+VBem3*{^rlf{>nW73$Sx-9g zFC>bK?0nr&h5d#m5(T8_Bk4S2$5#w)RbRb~wzH-M8Qyiw_*8tO7C-EMj@RNcuZp5q)pNY6 z%e+jQm&dc9mn%-=qZL)O3!iCmFJJOx^Jks2E|Pz3SxieYle%Zc7M zJ$LLqw~amWfOU}Jg2aS^@;Un{6a9kRQgex+JLOxoOW1H1SjfGj6kQA@M1@TV66ywJ z55PtcFrsRZdjb8p#89Ip1Hs0m>i9Yu}4u^K*8~z>KORy{=`(EUF*#Qpn-deI`LH3F?vv@yH_#!1vXIFWV*C3 z>Mpy%(+7aB5VV~jP*Kt=wSo~atsqd$qp?&hJtjmmDZVr#ViPL}eA+W@oJM|d8j-*4 z{e~f_&h#}^K?RphXbcQ+T*b!W>wSwIZ~zKBnU#cf zoD2YMc}hqt`nR$|R!|d1Ibu?DQgT92^kPa7CQ$@5h6zCwV+jFS$XkFzB1BNz*#~Az zIzwD0Gf0Y&{tSUJO(4Q|HUtXi^d;9w&z0g=JbkvUlSVeG^oT1_0`T!?FDK zkUVG)==Kui>hVvW+PrU#5A6e84A2P}1q>1>hT<6_J9)dzD!PdbFCcZsK7d7#vBGwA zbzWxBsd+_U(Z5YStW=M78|5V8(}RWgZ>%c=j1}H=^f;yTO4$cqx zms|ImNz)&Cywy@Hk>uC(Yh^>)S{LGY<8aulC~eKDRF_yDUFrPd3p&)-2-0bSfb&0eiHxk6%n4eD)C|IO-@o%Z7G+(a}AM{0{E zdBq6-Q%O-m1y~4OC0Bra(-sf*WzcQ_s9onlY6KL=>-3&cJ@+aog80wTI6Z`;V>Mh7 z6yrEQ7SA6gqN3jhcTLfwOjZ&UCX)`h6|*FWQgkenjwcfeyI(kr+Q6#=unO=B0Fp(o z0d@f10KloE4B$P$allEyIly_q1pwq}FS(b{3VfJfYWji*WYj3}s(ghXqTRjsDO%tA z2TO7Fcl6%-40*Y4lUKzhwjR<)d4O7z+U8n#^#JDZt>p1~2#3^PnP!mu1P_d>$>qqV Wgcs3QSR7Au?YvF>?>}tYkN*K8b4Mcp delta 2942 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 W{HTLV$M#$D#|=hF2W`)>0_h(?DC%bb delta 2775 zcmb`JYfPI}7{__rp2A>d&p)zuH%+uu3fpBthmaQ?HTSuwLp2_px!8YR3};& zp32trv4J|ELHxR~%&Y0U!wJpM6-tCOV^_GduPe+KktQua*cs~S3G#4^clPzhLOjg# zs9)4%)rb*Sf#@*xvwG^tJN=a@TWTd;v4Q2{`^5*BFQEZm1ULZ$Py)Ds3P1;B5>m=_ zU1Os-X)jWm#9Q{IW%pvF3aAD=0Ji4&fEjR$-|fY|We_U~ZZls1ISW`#&~p5-fnX>e z5A#Ir%tnpyJMOBM3oV#z18RWfKrLVed_Wx`ZWf;fZK8eLD9$*{Y#Vi1)%P5yGF{Ci z4raG--p5xt8|oVPoVOMi>MV*^eB-iV)?$- zM(XBkfF@uq0ft?{%h8-NU@C{Z(J^HN={7#wcw*R9Y6|W_z0w_Q}D;od|X~{b)}tkP;;5Ot8&|d;uRQK1;8WR z2;2wwfwkh2@ADz4`+l@H0tknQ?Z>d<&gGlXAr~PWZ@CxxW(CEA=nD`uBSma)B*8aR z!=00k4S9%GOp(?ofMnbPZWYe@O{|;5YPGNaV}r6?e7Mn}UTKc$#RqFl#W01&!tk@E z_xfs6I?d3FJc(d+iWbgie-3}K zO`dpmsEW=0z3gey6_`y5XSSY^RR=|d7S>Vm>M{`o5W+Ha(@sm^OzA8ap`a}=S0Jb3cxvM8P{F`H;7Q;qU;r2t7lQ$I zn8YorrG3Yue`&UKEuXL1kmR#0#-B&u3mM{aaHVj@ve=8%Zd0pbZ!qH#5<7L`=T@ug zeI}+4hPx^zk+Jm(dU;@p6(e$M2AhB+-p191~UBpnu! zJDA4=HFm3|gGX75jO0-)m1&rSG~cv1N|UD*n+{mnG3tq`t^?x#RGdHTu%5)Z@IMX| z5^mbpbHc&YJ%^t#+_rXK8}ZJr-7=G8_$z~!@_S+fHSV~xvC&xt+2@X5&rLtaPP7}` z@pO5VCOd$0ApfYe$U-0;_$+$=xpv8FkGM(MXFUD}ESg7#STIjM^lc=Gv8=*nbAAiV z83V#U?h-!*v&Fikjg8a#eQI0s?Z1Vp=fu#0`DD{eILCA$kgJ@!EJ$i3;O{ zZ)-hf;G2iz!-cm49RQw7j@O6p2c$ZbUyf?Rk-r?7!4bt=MjQ;q&xp~9LhCsa75c}o Z5U=SKMfoyAoS#@MzL*$Q6Q?VbKLK&@JiY(` diff --git a/tests/test_website.py b/tests/test_website.py index 34dfe36..3af725e 100644 --- a/tests/test_website.py +++ b/tests/test_website.py @@ -12,6 +12,11 @@ def test_config(): assert not create_app()["app"].testing assert create_app({'TESTING': True})["app"].testing +#basic tests +def test_favicon(client): + response = client.get("/favicon.ico") + assert response.status_code == 200 + #/adduser def test_adduser(client): response = client.get('/adduser/user') From 2c811109870caf125a8e3e7823554acde045738d Mon Sep 17 00:00:00 2001 From: 2000-Trek Date: Wed, 16 Aug 2023 23:18:53 +0200 Subject: [PATCH 2/3] test / --- .../test_website.cpython-311-pytest-7.4.0.pyc | Bin 42139 -> 43257 bytes tests/test_website.py | 4 ++++ 2 files changed, 4 insertions(+) diff --git a/tests/__pycache__/test_website.cpython-311-pytest-7.4.0.pyc b/tests/__pycache__/test_website.cpython-311-pytest-7.4.0.pyc index 37b5f785a7f79c17fa18bf7be78b2d5f100e3044..90572f718b7541073ea922ea2719dc93d8cbcc6c 100644 GIT binary patch delta 2304 zcmb`JdraF^6vz83y&beG8&V#v;CPslLR?)YlVt(P78#@{bMFZUDSUtS=P3Q}Rr*tDOV zdw%Df`@83!dv4E7>VLbgw_LDTOgj1$R({)lI%2VDvyqaY%y%ExwL03hW}P!nW@{DZ zyx%p~P)@(UyS=A>eP@riE$Hv*t}JqO`UAltxqtNmEo2J%0znU1_y+hk3TUNY;0aBq z3+txV*j_q3JTz8(A~YNd*G?H~uBq==NkUv7=XFC(!eF7EN<#D(9uhMed8|8`Hj%0lDiWp1ZTd*v_pbm&FHYOC-U zZWWW3bmk_tO@3pUHfiY|Fm_0?JOPWh&Qk-qj<^%fy1KbUiT-Hg$jdD*}Q`)*(JlO&4 z1dKo(&;aZblMj5I(+u$uU=_ii^|McNrt?QdhG#>?Zm9PVrj6d7t}cI&@1=p$%+v5d z#VmtV3S1rq2!9KJiJdO2E@!mU$W=P zY`grd`Yfvmz&Qx?0czF#kOly?^g&2RfTO_EKuBDvvx}HJkG)94dijO>65HNH;>|zl z6HDQTNuEya3;1|cd^st(kOqe8)ucuTSfnaqVrRC8q6+!Y|3UM|AKMgUXt4FKNYCWExn$@MVC_VW4NZlPi9E^fRRYPH>2iS1U~9MAeQVz+0V zeVMHu@#JTP5#w3lIp7#@Tzu-OV=t4qS7tuhvgSW7l&g1N=|cZyja=Yu&g#Tf&t_53 zo65#$+#&Dly~K>Kkm%KmTMbru|4}N=_Q9NT6k$xyRV|`$R#YkCy}|YQVOTHD0_g%4 zf{55MMf%WM_9`^8cxaSWkHbMtbPm!=OY%G-Bw|{^R`xn+`lTa0_CLkUc)@0kQcQKw z-XI~~=Hi)hjoO$zc&fv2+x9YhrhIKPyj6Qq1>7RaM@mB{p+p(e;Z)~IC3+az<0^0JkDPKzs4sNWl^{TRq_rGai%J7Rh4ol6gq(i+u2pLUE0T z(pFN-Z(*|egQqrkaWY`?Hc$i<1L}mIfus`i4y2@<&}tSmK_rD=5Y-cI>qQb(8e`C* zyqzUteBvPWT4S`T5w{Y@9mH|(a9lGS*9AWWpc8YnP>y!T(V{rcFUN`Ds9TOgcIritmp+092$i$>YWP*08W zRX(qQyJ&{^oz4_nhZ^JkNRF&(FdyJr1`H zTCJ8aesVKkdZu((LyhhWQ(3Ga=52M&5jq0UwUz5QXZ`Nz*@iztOM2qZn9-QkKF`W z1WaI5Io?+o&dG8!jb<)#ZGpLjF=8&St*)-}$*tUQM#)Hg&^}Y4Qh*qs6xc?USp}ko zygPQQ=@CnM35;b*{D;gITpjHr)9ZM#7XXwr!0A0BD)R)4+0X&YU=u7;oivd?H7KABBYn~$i#YYg{;|AT_I0%^Y8u7 zDsqSbk1SN#MHj^??L<#9%9F^pfAX1D8Y9l~$Rd?r+8)(BPP8z^1_0B_MF3XuRzQWi zfN*q1pyiLa7jttcTAJs;tOM`(9(Wz_Z!u`3tK~^azYjV_XOllSHbx$YZUUMCKX8H~ zJ#Nv-vP6}6N~ZkdcBS4ysM{T5r}8{j(-B4se5*w_>%Ge78x{tUKM<#~8(JeWkc&g% zQl})6C!}nlPsbNH#@_gfKs=Q+*~CTmRjc+lT@bDdaH}Wi33USW>m~Tw(qb2vx#?Ba zEj|C`YpJ!5{TzntD-7CwI$re#n#Zpk%eyjcn=njQ4xN$3bgU~Ss})A%C0{&!N%R4p zf%VVV`8>Vua=6AxFSwZo*Z~ia2Fyp^#gCnL{M|d9o+dh|KWL_f9vcO^9U{o)Ms>6M zE=OMZ1B-<^*T2u?4&e@7!-PNXk*-v~9tFBwr`5q}u69U$5I3O4IRkXL$@po(W*QF8 zwBKU0PWu6LB8D@W-UJVDDJ>jW>BbL6;!h$g0sI6cDzHS2m8gso Date: Fri, 25 Aug 2023 18:33:48 +0200 Subject: [PATCH 3/3] kp was ich gemacht habe --- Website/__init__.py | 5 ----- Website/__pycache__/__init__.cpython-311.pyc | Bin 27232 -> 26635 bytes .../test_website.cpython-311-pytest-7.4.0.pyc | Bin 43257 -> 47453 bytes tests/test_website.py | 20 +++++++++++++++++- 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/Website/__init__.py b/Website/__init__.py index 1c585ad..041dcda 100644 --- a/Website/__init__.py +++ b/Website/__init__.py @@ -134,11 +134,6 @@ def create_app(test_config=None): def new_user(): return render_template("adduser.html") - @app.route("/removeuser/confirmation", methods=['GET']) - def confirm_remove_user(): - user_id = request.args.get("id") - return f'

user and tag list | Documentation

Do your realy want to remove the user

' - @app.route("/removeuser", methods=['GET']) def remove_user(): db = get_db() diff --git a/Website/__pycache__/__init__.cpython-311.pyc b/Website/__pycache__/__init__.cpython-311.pyc index d5af4ffceba46610e64b7d2d30de4f890f948b4f..456d69343959951c066ed99a4b690f40dd166fda 100644 GIT binary patch delta 1758 zcmaKs?@v=#7{~9q?Y;d)f!oqT%a0ZcXa@lq4#$sy!67CapctJg3@F}bJ`~l$?5}=`?=F;7udLe_^H~{`AzOm=3Kul2+PW{YuSBMND#Qx?gf8qu6#vF zNP++(tp!jkHG7l^CQA=hY-7d+l2Tw^DlL3*#f&R4e~S5FQ7nV|QjJNOa6rR}B5=te zld|rFXkG>)|RX&E3Pq7buC#p*{*lC_ZAi`nQcF|dW+MVf-H?Sqxoe=>vNA0wJ1wrPq|>-R#@YE`FJa?6*sHQpQU%CcdRc~bIy>v&P|ck&A#+tF+?rN zipk03DBU$jS(e_J&e0IqHAnhBf>}|ynX@k1y`@aUYB8x5S*pBD{h^m@Q7e~(|MVa~ zrKDVH)h+S35U$oc9c$iCzYUpfh9w!-=ff^z|%{`%f0Ceow( zYCjU?UbaO0;JdoY{1a$)Au164@T{)cev6rL+fHa#{TF5y`g`M$Si?i#L1_?Cj_6|u z+h`Hm2M|XQ5twZXl786e^@?orbyI+B=?|KI6iF0rH#d=^@TgfO5A~LoPs~JxN9_&d zBv?AiW!#R=L0w06Xa-GQT??~}oY-_?eCpgZO+;e}+K-EqFx$~h9_#lyeiI!Udd3hF zu+`a5o`e0+WfIe`A1X5s^Sv(PB1OazNyK}IS;QRTJmMr`o*`_Z7--mMl3G$59#3df z{}x0qp)6B}<47-&^vID`$rEAjXMeLn2T(A`Fdu-8#u8ufjUXLD-!P&PF@orU$36aX z-i%e8V@-x>-~PrgMS5-95zdFzx=Mc(=eza+PWA5R$qg%i2{CPUyR93&o%V9p(fG}s zw#t3=4q0WJvD*GD@!a-AXUW`_y28q!RBd|spcN%2j26Y%en zeu!8@1QGnL@pF4{+6UEx6|XI$i7&*E;)!TNqrAGq=)z}$2J!3*NoP=Zq* s;xo8*_Wb|`(pp3nBE<0A+BP+R delta 2107 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