kopia lustrzana https://github.com/micropython/micropython-lib
43 wiersze
1023 B
Python
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()
|