1

コード内ですべてのコメントのリストをタプルとして返す際に問題が発生しています。ここに私が持っているものがあります:

def list_comments(db, limit=None):
    """return a list of all comments as tuples

       - tuples are (id, useremail, page, comment)
       if limit is provided it should be an integer and only that
       many comments will be returned
    """

    cursor.execute("SELECT * FROM comments")
    manyresults = cursor.fetchall()

    for row in cursor:
        return row

だから私がやろうとしているのは、コメントテーブルからすべてを選択して返すことです:

CREATE TABLE comments (
        id integer unique primary key autoincrement,
        useremail text,
        page text,
        comment text,
        FOREIGN KEY(useremail) REFERENCES users(email)
);"""

私はこれに非常に慣れていないので、完全に間違っている場合は、どこで、または何が間違っているかを教えてください。ありがとう!

編集:これは私が実行しているテストです

 def test_list_comments(self):
    """The list_comments procedure should return a list of tuples
    one for each of the comment entries in the database, each tuple
    should contain """

    clist = interface.list_comments(self.db)

    # we should have the same number of comments as we created
    self.assertEquals(len(clist), len(self.comments), "Wrong number of comments returned from list_units, expected %d, got %d" % (len(self.comments), len(clist)))

    # comments should be in order so the largest id should be first
    self.assertEquals(clist[0][0], self.comments[-1][0], "Wrong comment id first in comment list, expected %d, got %d" % (clist[0][0], self.comments[-1][0]))

    # and the comment list should be ordered by id
    ids = [c[0] for c in clist]
    self.assertEqual(sorted(ids, reverse=True), ids, "List of comments returned is not in large-to-small order: %s" % (ids,))

    # try the limit argument
    clist = interface.list_comments(self.db, 3)
    self.assertEquals(len(clist), 3, "Wrong number of comments returned from list_comments with a limit argument, expected 3, got %d" % (len(clist),))
4

1 に答える 1