mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
gh-90016: Deprecate default sqlite3 adapters and converters (#94276)
Co-authored-by: CAM Gerlach <CAM.Gerlach@Gerlach.CAM>
This commit is contained in:
parent
000a4eebe7
commit
6dadf6ca01
7 changed files with 66 additions and 49 deletions
|
@ -129,7 +129,8 @@ class RegressionTests(unittest.TestCase):
|
|||
con = sqlite.connect(":memory:",detect_types=sqlite.PARSE_DECLTYPES)
|
||||
cur = con.cursor()
|
||||
cur.execute("create table foo(bar timestamp)")
|
||||
cur.execute("insert into foo(bar) values (?)", (datetime.datetime.now(),))
|
||||
with self.assertWarnsRegex(DeprecationWarning, "adapter"):
|
||||
cur.execute("insert into foo(bar) values (?)", (datetime.datetime.now(),))
|
||||
cur.execute(SELECT)
|
||||
cur.execute("drop table foo")
|
||||
cur.execute("create table foo(bar integer)")
|
||||
|
@ -305,7 +306,8 @@ class RegressionTests(unittest.TestCase):
|
|||
cur.execute("INSERT INTO t (x) VALUES ('2012-04-04 15:06:00.123456789')")
|
||||
|
||||
cur.execute("SELECT * FROM t")
|
||||
values = [x[0] for x in cur.fetchall()]
|
||||
with self.assertWarnsRegex(DeprecationWarning, "converter"):
|
||||
values = [x[0] for x in cur.fetchall()]
|
||||
|
||||
self.assertEqual(values, [
|
||||
datetime.datetime(2012, 4, 4, 15, 6, 0, 456000),
|
||||
|
|
|
@ -496,38 +496,51 @@ class DateTimeTests(unittest.TestCase):
|
|||
|
||||
def test_sqlite_date(self):
|
||||
d = sqlite.Date(2004, 2, 14)
|
||||
self.cur.execute("insert into test(d) values (?)", (d,))
|
||||
with self.assertWarnsRegex(DeprecationWarning, "adapter") as cm:
|
||||
self.cur.execute("insert into test(d) values (?)", (d,))
|
||||
self.assertEqual(cm.filename, __file__)
|
||||
self.cur.execute("select d from test")
|
||||
d2 = self.cur.fetchone()[0]
|
||||
with self.assertWarnsRegex(DeprecationWarning, "converter") as cm:
|
||||
d2 = self.cur.fetchone()[0]
|
||||
self.assertEqual(cm.filename, __file__)
|
||||
self.assertEqual(d, d2)
|
||||
|
||||
def test_sqlite_timestamp(self):
|
||||
ts = sqlite.Timestamp(2004, 2, 14, 7, 15, 0)
|
||||
self.cur.execute("insert into test(ts) values (?)", (ts,))
|
||||
with self.assertWarnsRegex(DeprecationWarning, "adapter") as cm:
|
||||
self.cur.execute("insert into test(ts) values (?)", (ts,))
|
||||
self.assertEqual(cm.filename, __file__)
|
||||
self.cur.execute("select ts from test")
|
||||
ts2 = self.cur.fetchone()[0]
|
||||
with self.assertWarnsRegex(DeprecationWarning, "converter") as cm:
|
||||
ts2 = self.cur.fetchone()[0]
|
||||
self.assertEqual(cm.filename, __file__)
|
||||
self.assertEqual(ts, ts2)
|
||||
|
||||
def test_sql_timestamp(self):
|
||||
now = datetime.datetime.utcnow()
|
||||
self.cur.execute("insert into test(ts) values (current_timestamp)")
|
||||
self.cur.execute("select ts from test")
|
||||
ts = self.cur.fetchone()[0]
|
||||
with self.assertWarnsRegex(DeprecationWarning, "converter"):
|
||||
ts = self.cur.fetchone()[0]
|
||||
self.assertEqual(type(ts), datetime.datetime)
|
||||
self.assertEqual(ts.year, now.year)
|
||||
|
||||
def test_date_time_sub_seconds(self):
|
||||
ts = sqlite.Timestamp(2004, 2, 14, 7, 15, 0, 500000)
|
||||
self.cur.execute("insert into test(ts) values (?)", (ts,))
|
||||
with self.assertWarnsRegex(DeprecationWarning, "adapter"):
|
||||
self.cur.execute("insert into test(ts) values (?)", (ts,))
|
||||
self.cur.execute("select ts from test")
|
||||
ts2 = self.cur.fetchone()[0]
|
||||
with self.assertWarnsRegex(DeprecationWarning, "converter"):
|
||||
ts2 = self.cur.fetchone()[0]
|
||||
self.assertEqual(ts, ts2)
|
||||
|
||||
def test_date_time_sub_seconds_floating_point(self):
|
||||
ts = sqlite.Timestamp(2004, 2, 14, 7, 15, 0, 510241)
|
||||
self.cur.execute("insert into test(ts) values (?)", (ts,))
|
||||
with self.assertWarnsRegex(DeprecationWarning, "adapter"):
|
||||
self.cur.execute("insert into test(ts) values (?)", (ts,))
|
||||
self.cur.execute("select ts from test")
|
||||
ts2 = self.cur.fetchone()[0]
|
||||
with self.assertWarnsRegex(DeprecationWarning, "converter"):
|
||||
ts2 = self.cur.fetchone()[0]
|
||||
self.assertEqual(ts, ts2)
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue