Skip to content

Commit de0e18c

Browse files
author
Erlend E. Aasland
committed
Add tests
1 parent d3694b6 commit de0e18c

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

Lib/sqlite3/test/dbapi.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,33 @@ def test_open_uri(self):
192192
cx.execute('insert into test(id) values(1)')
193193

194194

195+
class StatementCacheTests(unittest.TestCase):
196+
def test_statement_cache(self):
197+
query = 'select * from sqlite_master'
198+
cx = sqlite.connect(':memory:')
199+
cx.execute(query) # cache miss
200+
cx.execute(query) # cache hit
201+
cache = cx.statement_cache()
202+
info = cache.cache_info()
203+
self.assertEqual(info.hits, 1)
204+
self.assertEqual(info.misses, 1)
205+
self.assertEqual(info.maxsize, 100)
206+
self.assertEqual(info.currsize, 1)
207+
208+
def test_statement_cache_maxsize(self):
209+
maxsize = 5
210+
testsize = maxsize + 1
211+
cx = sqlite.connect(':memory:', cached_statements=maxsize)
212+
for i in range(testsize):
213+
cx.execute(f'select {i}')
214+
cache = cx.statement_cache()
215+
info = cache.cache_info()
216+
self.assertEqual(info.hits, 0)
217+
self.assertEqual(info.misses, testsize)
218+
self.assertEqual(info.maxsize, maxsize)
219+
self.assertEqual(info.currsize, maxsize)
220+
221+
195222
class CursorTests(unittest.TestCase):
196223
def setUp(self):
197224
self.cx = sqlite.connect(":memory:")
@@ -943,6 +970,7 @@ def suite():
943970
ExtensionTests,
944971
ModuleTests,
945972
SqliteOnConflictTests,
973+
StatementCacheTests,
946974
ThreadTests,
947975
]
948976
return unittest.TestSuite(

0 commit comments

Comments
 (0)