From ccadbec82555c53eefa889160510f5af1e224709 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sun, 3 Apr 2022 13:44:57 -0400 Subject: use .fromisoformat() for sqlite datetime, date, time parsing SQLite datetime, date, and time datatypes now use Python standard lib ``fromisoformat()`` methods in order to parse incoming datetime, date, and time string values. This improves performance vs. the previous regular expression-based approach, and also automatically accommodates for datetime and time formats that contain either a six-digit "microseconds" format or a three-digit "milliseconds" format. Fixes: #7029 Change-Id: I67aab4fe5ee3055e5996050cf4564981413cc221 --- test/dialect/test_sqlite.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'test/dialect/test_sqlite.py') diff --git a/test/dialect/test_sqlite.py b/test/dialect/test_sqlite.py index 9658fec83..8e7632c90 100644 --- a/test/dialect/test_sqlite.py +++ b/test/dialect/test_sqlite.py @@ -117,7 +117,7 @@ class TestTypes(fixtures.TestBase, AssertsExecutionResults): ]: assert_raises_message( ValueError, - "Couldn't parse %s string." % disp, + "Invalid isoformat string:", lambda: connection.execute( text("select 'ASDF' as value").columns(value=typ) ).scalar(), @@ -166,7 +166,7 @@ class TestTypes(fixtures.TestBase, AssertsExecutionResults): # 2004-05-21T00:00:00 storage_format="%(year)04d-%(month)02d-%(day)02d" "T%(hour)02d:%(minute)02d:%(second)02d", - regexp=r"(\d+)-(\d+)-(\d+)T(\d+):(\d+):(\d+)", + regexp=r"^(\d+)-(\d+)-(\d+)T(\d+):(\d+):(\d+)$", ) t = Table("t", self.metadata, Column("d", sqlite_date)) self.metadata.create_all(connection) @@ -195,7 +195,7 @@ class TestTypes(fixtures.TestBase, AssertsExecutionResults): sqlite_date = sqlite.DATETIME( storage_format="%(year)04d%(month)02d%(day)02d" "%(hour)02d%(minute)02d%(second)02d", - regexp=r"(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})", + regexp=r"^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$", ) t = Table("t", self.metadata, Column("d", sqlite_date)) self.metadata.create_all(connection) -- cgit v1.2.1