From 151e4f7f68c9eb25907d457954bec0f661d136d5 Mon Sep 17 00:00:00 2001 From: 2000-Trek Date: Wed, 16 Aug 2023 21:36:23 +0200 Subject: [PATCH] random test coverage --- Website/__init__.py | 30 +++++---- Website/__pycache__/__init__.cpython-311.pyc | Bin 27445 -> 27553 bytes .../test_website.cpython-311-pytest-7.4.0.pyc | Bin 26038 -> 41114 bytes tests/test_website.py | 58 ++++++++++++++++-- 4 files changed, 68 insertions(+), 20 deletions(-) diff --git a/Website/__init__.py b/Website/__init__.py index 33617d7..497fcc6 100644 --- a/Website/__init__.py +++ b/Website/__init__.py @@ -44,7 +44,7 @@ def create_app(test_config=None): # app.logger.info("Website exited") #var - users = queue.Queue() + user_queue = queue.Queue() #website @app.route('/favicon.ico') @@ -215,15 +215,14 @@ def create_app(test_config=None): return '

user and tag list | Documentation

Error: 043

' @app.route("/addtag", methods=['GET']) - def get_addtag_request(): - global users + def get_addtag_request(): try: user_id = int(request.args.get("id")) except: #except im Normalen Code! return "Error: 095" session_id = uuid.uuid4() session[id] = session_id - users.put([user_id, "add", session_id]) + user_queue.put([user_id, "add", session_id]) return render_template("addtag.html", user=user_id) @socketio.on('addtag') @@ -231,8 +230,8 @@ def create_app(test_config=None): global finished global message join_room(session[id]) - if len(users.queue) > 0: - user = users.queue[len(users.queue) - 1] + if len(user_queue.queue) > 0: + user = user_queue.queue[len(user_queue.queue) - 1] if user == [data["data"], "add", session[id]]: socketio.emit("wait", "wait", to=session[id]) i = 0 @@ -241,7 +240,7 @@ def create_app(test_config=None): i += 1 if i > 20: socketio.emit("error", "352", to=session[id]) - notimportant = users.get() + notimportant = user_queue.get() break else: finished = None @@ -254,15 +253,14 @@ def create_app(test_config=None): leave_room(session[id]) @app.route("/removetag", methods=['GET']) - def get_removetag_request(): - global users + def get_removetag_request(): try: user_id = int(request.args.get("id")) except: #except im Normalen Code! return "Wrong user id!" session_id = uuid.uuid4() session[id] = session_id - users.put([user_id, "remove", session_id]) + user_queue.put([user_id, "remove", session_id]) return render_template("removetag.html", user=user_id) @socketio.on('removetag') @@ -270,8 +268,8 @@ def create_app(test_config=None): global finished global message join_room(session[id]) - if len(users.queue) > 0: - queue_item = users.queue[len(users.queue) - 1] + if len(user_queue.queue) > 0: + queue_item = user_queue.queue[len(user_queue.queue) - 1] user = queue_item[0] if queue_item == [data["data"], "remove", session[id]]: socketio.emit("wait", "wait", to=session[id]) @@ -281,7 +279,7 @@ def create_app(test_config=None): i += 1 if i > 20: socketio.emit("error", "352", to=session[id]) - notimportant = users.get() + notimportant = user_queue.get() break else: finished = None @@ -327,8 +325,8 @@ def create_app(test_config=None): c.execute(f"SELECT * FROM tags WHERE tagid=?", [tag_id]) tag_list = c.fetchall() - if users.qsize() > 0: - queue_item = users.get() + if user_queue.qsize() > 0: + queue_item = user_queue.get() user = queue_item[0] state = queue_item[1] @@ -371,7 +369,7 @@ def create_app(test_config=None): user_list = c.fetchall() if user_list != []: balance_old = user_list[0][2] - if users.qsize() == 0: + if user_queue.qsize() == 0: c.execute(f"UPDATE users SET balance = balance - 1 WHERE id={tag[1]}") db.commit() c.execute(f"SELECT * FROM users WHERE id={tag[1]}") diff --git a/Website/__pycache__/__init__.cpython-311.pyc b/Website/__pycache__/__init__.cpython-311.pyc index f6faef90ca047b31b4465d6f20763c7a29cfe1f3..385456ece7513003a871ac5846908e23a07b5571 100644 GIT binary patch delta 6044 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 C@;bHv 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 b874607ae0d5b0fdff6eb3349f10cce2083154c6..229675188f17e53c07b50a9d32281ac3e52456fd 100644 GIT binary patch literal 41114 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 delta 747 zcmbV~&r4KM6vyYx^Njf>#~{ay&Yh$yu+r*qz4U|qN$zK46x_gwC|YkBYIO$fX% zEj2y78V2(HtNvUd3}155WNx7s;i1PW*H_@R0jB;?6hkP}`z0s-;;Wo)hfu$&&w_p$ zdSigCe@BkJ_=pdx^g(4K;&YZYy1M$ru#zlQyWp{)Nbp2ZD~Jl72~yM)y^TFAEj<>U z0lkx$Ht0vJ7W(vA%mf&u;`le51sA5mr3wT;%d*gU}D)}={1twwr=(`uT-fA{`%FNm{Tc~@WVSi@%5 zq>bal^FpDZX8z0bPiF;YxiY51U0?lo#Pblv>7sUC+RcQhD%Ih0Uuc9zQ_0|%IE)LF zz!pr