aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib/test/test_sqlite3
diff options
context:
space:
mode:
authorCorvin <corvin@corvin.dev>2023-08-30 05:06:21 -0400
committerGitHub <noreply@github.com>2023-08-30 09:06:21 +0000
commit400a1cebc743515e40157ed7af86e48d654290ce (patch)
treee4f5f2e61c3cff4743684fd60908db34880ca10a /Lib/test/test_sqlite3
parent210a5d7b8b2f5cdaf3740e8b9b468ed5ddf24591 (diff)
downloadcpython-400a1cebc743515e40157ed7af86e48d654290ce.tar.gz
cpython-400a1cebc743515e40157ed7af86e48d654290ce.zip
gh-108590: Fix sqlite3.iterdump for invalid Unicode in TEXT columns (#108657)
Co-authored-by: Erlend E. Aasland <erlend@python.org>
Diffstat (limited to 'Lib/test/test_sqlite3')
-rw-r--r--Lib/test/test_sqlite3/test_dump.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/Lib/test/test_sqlite3/test_dump.py b/Lib/test/test_sqlite3/test_dump.py
index 3107e1b165d..0279ce68eeb 100644
--- a/Lib/test/test_sqlite3/test_dump.py
+++ b/Lib/test/test_sqlite3/test_dump.py
@@ -133,6 +133,21 @@ class DumpTests(MemoryDatabaseMixin, unittest.TestCase):
actual = list(self.cx.iterdump())
self.assertEqual(expected, actual)
+ def test_dump_unicode_invalid(self):
+ # gh-108590
+ expected = [
+ "BEGIN TRANSACTION;",
+ "CREATE TABLE foo (data TEXT);",
+ "INSERT INTO \"foo\" VALUES('a\x9f');",
+ "COMMIT;",
+ ]
+ self.cu.executescript("""
+ CREATE TABLE foo (data TEXT);
+ INSERT INTO foo VALUES (CAST(X'619f' AS TEXT));
+ """)
+ actual = list(self.cx.iterdump())
+ self.assertEqual(expected, actual)
+
if __name__ == "__main__":
unittest.main()