2015-05-18 6 views
0

Я уверен, что код, который я делаю, логичен и имеет смысл, но когда я запускаю его против моего теста, результат возвращается довольно необычно, я пытаюсь найти сеанс из файла cookie, а затем использовать его для извлечения пользователя из таблицы сеансов. Я использую рамки бутылки, чтобы проверить мою программуОшибка утверждения python sqlite3

active_session = bottle.request.get_cookie(COOKIE_NAME) 
cursor = db.cursor() 

if active_session: 
    cursor.execute("SELECT usernick FROM sessions WHERE sessionid=?", (active_session,)) 
    active_user = cursor.fetchone() 
    return active_user 
else: 
    return None 

Результат выглядит следующим образом

self.assertEqual(nick_from_cookie, nick) 
AssertionError: ('Bobalooba',) != 'Bobalooba'\ 

Я знаю, что я так близко кто-то может мне точку в правильном направлении

+0

попробовать 'active_user = cursor.fetchone() [0]' –

+0

TypeError: объект '' NoneType не subscriptable :(, я попробовал эту – NubmcNub

+0

... что означает, что курсор вы используя возвращает None для fetchone в случае, если нет совпадения –

ответ

1
if active_session: 
    cursor.execute("SELECT usernick FROM sessions WHERE sessionid=?", (active_session,)) 
    active_user = cursor.fetchone() 
    return active_user[0] if active_user else active_user 
0

Это потому, что вы извлекают всю строку и сравнивают ее с одной строкой. Вам нужно захватить одно поле, содержащееся в полученной строке. Попробуйте это как ввод вашего утверждения.

return active_user[0] 
+0

TypeError: объект «NoneType» не подпишет – NubmcNub

+0

спасибо за помощь, но не умереть :( – NubmcNub

+0

вы пробовали nick_from_cookie [0] – errata

Смежные вопросы