2015-05-06 156 views
0

我想從數據庫中的會話表中檢索用戶。在我的單元測試我得到一個錯誤:比較元組與字符串

line 138, in test_session_user 
    self.assertEqual(nick_from_cookie, nick) 
AssertionError: ('Bobalooba',) != 'Bobalooba' 

我明白,這是因爲當測試對因此字符串,不匹配的比較我的返回值,我的代碼返回一個元組。

有沒有辦法讓我使用元組進行比較,或者是他們更好的方式來查詢我需要的結果。下面是一個使用藏漢作爲我的功能表IM:

def session_user(db): 
    """try to 
    retrieve the user from the sessions table 
    return usernick or None if no valid session is present 
    """ 
    cursor = db.cursor() 
    sessionid = bottle.request.get_cookie(COOKIE_NAME) 
    usernick = None 
    if sessionid: 
     cursor.execute("SELECT usernick FROM sessions WHERE sessionid=?", (sessionid,)) 
     usernick = cursor.fetchone() 
    return usernick 

回答

3

使用

row = cursor.fetchone() 
if row: 
    usernick, = row 

注元組的拆包。

+0

當我嘗試這方面,我得到一個錯誤「線66,在SESSION_USER usernick,= cursor.fetchone() 類型錯誤:‘NoneType’對象不是可迭代 」 –

+0

然後將查詢的結果是空的。在解開元組之前先檢查它。 –

+0

我該如何去做?抱歉,python絕對不是我的強項。我是新手。 –