LIMIT的输入值(单元测试)

时间:2013-04-18 10:18:36

标签: python sql

我目前对此感到困惑。默认情况下,限制为none,但如果我要以unitest方式测试它并询问特定数量的注释,则会说类型不匹配。我知道“int”不是正确的术语。我只是说限制应该是一个整数。根据unitest中的限制,解决输入的正确方法是什么。

def list_comments(db, limit=None): limit = "int"
    limit = "int"

    cur = db.cursor()
    cur.execute("SELECT id, comment FROM comments ORDER BY id DESC LIMIT ?", (limit,))
    results = cur.fetchall()

    print results

    return results

1 个答案:

答案 0 :(得分:0)

从函数后面删除limit = "int",并将limit参数默认设置为0,并将占位符用作%s;

def list_comments(db, limit=0):
    cur = db.cursor()
    cur.execute("SELECT id, comment FROM comments ORDER BY id DESC LIMIT %s", (str(limit)))
    results = cur.fetchall()

    print results

    return results

如果还不需要,也请删除逗号; (limit,)

我故意将限制值解析为字符串(如果它确实是一个整数,你可以检查它),让它始终与%s占位符匹配。