'Connection.commit() did reset cursors, which made sqlite3
to return rows multiple times when fetched from cursors
after commit. See issues 10513 and 23129 for details.'

def CheckCommitCursorReset(self):

    con = sqlite.connect(':memory:')
    con.executescript('\n                                create    table    t(c);\n                                create    table    t2(c);\n                                insert    into    t    values(0);\n                                insert    into    t    values(1);\n                                insert    into    t    values(2);\n                                ')
    self.assertEqual(con.isolation_level, '')
    counter = 0
    for (i, row) in enumerate(con.execute('select    c    from    t')):
        with self.subTest(i=i, row=row):
            con.execute('insert    into    t2(c)    values    (?)', (i,))
            con.commit()
            if (counter == 0):
                self.assertEqual(row[0], 0)
            elif (counter == 1):
                self.assertEqual(row[0], 1)
            elif (counter == 2):
                self.assertEqual(row[0], 2)
            counter += 1
    self.assertEqual(counter, 3, 'should    have    returned    exactly    three    rows')
