Ver Fonte

Add test login

lanfr144 há 2 semanas atrás
pai
commit
d7f6558318
1 ficheiros alterados com 46 adições e 0 exclusões
  1. 46 0
      test_login.py

+ 46 - 0
test_login.py

@@ -0,0 +1,46 @@
+import bcrypt
+import myloginpath
+import pymysql
+
+def test_login(username, password):
+    conf = myloginpath.parse('app_auth')
+    conn = pymysql.connect(
+        host=conf.get('host', '127.0.0.1'),
+        user=conf.get('user'),
+        password=conf.get('password'),
+        database='food_db',
+        cursorclass=pymysql.cursors.DictCursor
+    )
+    with conn.cursor() as cursor:
+        cursor.execute("SELECT password_hash FROM users WHERE username = %s LIMIT 1", (username,))
+        result = cursor.fetchone()
+    conn.close()
+    if result:
+        return bcrypt.checkpw(password.encode('utf-8'), result['password_hash'].encode('utf-8'))
+    return False
+
+# Try registering a user and testing it
+def register_and_test():
+    conf = myloginpath.parse('app_auth')
+    conn = pymysql.connect(
+        host=conf.get('host', '127.0.0.1'),
+        user=conf.get('user'),
+        password=conf.get('password'),
+        database='food_db',
+        cursorclass=pymysql.cursors.DictCursor
+    )
+    username = "test_bot"
+    password = "bot_password"
+    hashed = bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt()).decode('utf-8')
+    try:
+        with conn.cursor() as cursor:
+            cursor.execute("INSERT INTO users (username, password_hash, email) VALUES (%s, %s, %s)", (username, hashed, 'bot@bot.com'))
+            conn.commit()
+    except Exception as e:
+        print("Insert failed:", e)
+    conn.close()
+    
+    print("Login successful?", test_login(username, password))
+
+if __name__ == "__main__":
+    register_and_test()