1616
1717import httpx
1818
19- from sqlite_s3_query import sqlite_s3_query , sqlite_s3_query_multi
19+ from sqlite_s3_query import (
20+ VersioningNotEnabledError ,
21+ SQLiteError ,
22+ QueryContextClosedError ,
23+ sqlite_s3_query ,
24+ sqlite_s3_query_multi ,
25+ )
2026
2127
2228class TestSqliteS3Query (unittest .TestCase ):
@@ -36,7 +42,7 @@ def test_without_versioning(self):
3642 ]) as db :
3743 put_object_without_versioning ('bucket-without-versioning' , 'my.db' , db )
3844
39- with self .assertRaisesRegex (Exception , 'The bucket must have versioning enabled' ):
45+ with self .assertRaisesRegex (VersioningNotEnabledError , 'The bucket must have versioning enabled' ):
4046 sqlite_s3_query ('http://localhost:9000/bucket-without-versioning/my.db' , get_credentials = lambda now : (
4147 'us-east-1' ,
4248 'AKIAIOSFODNN7EXAMPLE' ,
@@ -98,7 +104,7 @@ def test_select(self):
98104
99105 self .assertEqual (rows , [('some-text-a' ,)] * 500 )
100106
101- with self .assertRaisesRegex (Exception , 'Attempting to use finalized statement' ):
107+ with self .assertRaisesRegex (QueryContextClosedError , 'Attempting to use finalized statement' ):
102108 with sqlite_s3_query ('http://localhost:9000/my-bucket/my.db' , get_credentials = lambda now : (
103109 'us-east-1' ,
104110 'AKIAIOSFODNN7EXAMPLE' ,
@@ -110,7 +116,7 @@ def test_select(self):
110116 break
111117 next (rows )
112118
113- with self .assertRaisesRegex (Exception , 'Attempting to use finalized statement' ):
119+ with self .assertRaisesRegex (QueryContextClosedError , 'Attempting to use finalized statement' ):
114120 with sqlite_s3_query ('http://localhost:9000/my-bucket/my.db' , get_credentials = lambda now : (
115121 'us-east-1' ,
116122 'AKIAIOSFODNN7EXAMPLE' ,
@@ -257,7 +263,7 @@ def test_select_multi(self):
257263 next (rows_2_it )
258264 raise Exception ('Multiple open statements' )
259265
260- with self .assertRaisesRegex (Exception , 'Attempting to use finalized statement' ):
266+ with self .assertRaisesRegex (QueryContextClosedError , 'Attempting to use finalized statement' ):
261267 with sqlite_s3_query_multi ('http://localhost:9000/my-bucket/my.db' , get_credentials = lambda now : (
262268 'us-east-1' ,
263269 'AKIAIOSFODNN7EXAMPLE' ,
@@ -393,7 +399,7 @@ def test_non_existant_table(self):
393399 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY' ,
394400 None ,
395401 ), get_libsqlite3 = get_libsqlite3 ) as query :
396- with self .assertRaisesRegex (Exception , 'no such table: non_table' ):
402+ with self .assertRaisesRegex (SQLiteError , 'no such table: non_table' ):
397403 query ("SELECT * FROM non_table" ).__enter__ ()
398404
399405 def test_empty_object (self ):
@@ -405,7 +411,7 @@ def test_empty_object(self):
405411 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY' ,
406412 None ,
407413 ), get_libsqlite3 = get_libsqlite3 ) as query :
408- with self .assertRaisesRegex (Exception , 'disk I/O error' ):
414+ with self .assertRaisesRegex (SQLiteError , 'disk I/O error' ):
409415 query ('SELECT 1' ).__enter__ ()
410416
411417 def test_bad_db_header (self ):
@@ -417,7 +423,7 @@ def test_bad_db_header(self):
417423 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY' ,
418424 None ,
419425 ), get_libsqlite3 = get_libsqlite3 ) as query :
420- with self .assertRaisesRegex (Exception , 'disk I/O error' ):
426+ with self .assertRaisesRegex (SQLiteError , 'disk I/O error' ):
421427 query ("SELECT * FROM non_table" ).__enter__ ()
422428
423429 def test_bad_db_second_half (self ):
@@ -435,7 +441,7 @@ def test_bad_db_second_half(self):
435441 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY' ,
436442 None ,
437443 ), get_libsqlite3 = get_libsqlite3 ) as query :
438- with self .assertRaisesRegex (Exception , 'database disk image is malformed' ):
444+ with self .assertRaisesRegex (SQLiteError , 'database disk image is malformed' ):
439445 with query ("SELECT * FROM my_table" ) as (columns , rows ):
440446 list (rows )
441447
@@ -649,7 +655,7 @@ def iter_bytes(chunk_size=None):
649655 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY' ,
650656 None ,
651657 ), get_http_client = get_http_client , get_libsqlite3 = get_libsqlite3 ) as query :
652- with self .assertRaisesRegex (Exception , 'disk I/O error' ):
658+ with self .assertRaisesRegex (SQLiteError , 'disk I/O error' ):
653659 query ('SELECT my_col_a FROM my_table' ).__enter__ ()
654660
655661 def test_disconnection (self ):
0 commit comments