micropython-lib/unix-ffi/sqlite3/test_sqlite3_3.py

43 wiersze
1023 B
Python

import sqlite3
def test_autocommit():
conn = sqlite3.connect(":memory:", autocommit=True)
# First cursor creates table and inserts value (DML)
cur = conn.cursor()
cur.execute("CREATE TABLE foo(a int)")
cur.execute("INSERT INTO foo VALUES (42)")
cur.close()
# Second cursor fetches 42 due to the autocommit
cur = conn.cursor()
cur.execute("SELECT * FROM foo")
assert cur.fetchone() == (42,)
assert cur.fetchone() is None
cur.close()
conn.close()
def test_manual():
conn = sqlite3.connect(":memory:", autocommit=False)
# First cursor creates table, insert rolls back
cur = conn.cursor()
cur.execute("CREATE TABLE foo(a int)")
conn.commit()
cur.execute("INSERT INTO foo VALUES (42)")
cur.close()
conn.rollback()
# Second connection fetches nothing due to the rollback
cur = conn.cursor()
cur.execute("SELECT * FROM foo")
assert cur.fetchone() is None
cur.close()
conn.close()
test_autocommit()
test_manual()