Skip to content

Commit bb0a729

Browse files
author
Erlend E. Aasland
committed
Use subTest
1 parent 6c3bc37 commit bb0a729

File tree

1 file changed

+14
-23
lines changed

1 file changed

+14
-23
lines changed

Lib/sqlite3/test/test_regression.py

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -489,36 +489,27 @@ def test_executescript_step_through_select(self):
489489

490490
class ConverterProgrammingErrorTestCase(unittest.TestCase):
491491
def setUp(self):
492-
self.con = sqlite.connect(':memory:', detect_types=sqlite.PARSE_COLNAMES)
492+
self.con = sqlite.connect(":memory:", detect_types=sqlite.PARSE_COLNAMES)
493493
self.cur = self.con.cursor()
494-
self.cur.execute('create table test(x foo)')
494+
self.cur.execute("create table test(x foo)")
495+
self.cur.executemany("insert into test(x) values (?)", [("foo",), ("bar",)])
495496

496-
sqlite.converters['CURSOR_INIT'] = lambda x: self.cur.__init__(self.con)
497-
sqlite.converters['CURSOR_CLOSE'] = lambda x: self.cur.close()
498-
sqlite.converters['CURSOR_ITER'] = lambda x, l=[]: self.cur.fetchone() if l else l.append(None)
497+
sqlite.converters["CURSOR_INIT"] = lambda x: self.cur.__init__(self.con)
498+
sqlite.converters["CURSOR_CLOSE"] = lambda x: self.cur.close()
499+
sqlite.converters["CURSOR_ITER"] = lambda x, l=[]: self.cur.fetchone() if l else l.append(None)
499500

500501
def tearDown(self):
501-
del sqlite.converters['CURSOR_INIT']
502-
del sqlite.converters['CURSOR_CLOSE']
503-
del sqlite.converters['CURSOR_ITER']
502+
del sqlite.converters["CURSOR_INIT"]
503+
del sqlite.converters["CURSOR_CLOSE"]
504+
del sqlite.converters["CURSOR_ITER"]
504505
self.cur.close()
505506
self.con.close()
506507

507-
def test_cursor_init(self):
508-
self.cur.execute('insert into test(x) values (?)', ('foo',))
509-
with self.assertRaises(sqlite.ProgrammingError):
510-
self.cur.execute('select x as "x [CURSOR_INIT]", x from test')
511-
512-
def test_cursor_close(self):
513-
self.cur.execute('insert into test(x) values (?)', ('foo',))
514-
with self.assertRaises(sqlite.ProgrammingError):
515-
self.cur.execute('select x as "x [CURSOR_CLOSE]", x from test')
516-
517-
def test_cursor_iter(self):
518-
self.cur.executemany('insert into test(x) values (?)', (('foo',),) * 2)
519-
self.cur.execute('select x as "x [CURSOR_ITER]", x from test')
520-
with self.assertRaises(sqlite.ProgrammingError):
521-
self.cur.fetchone()
508+
def test_recursive_cursor_usage(self):
509+
for converter in "CURSOR_INIT", "CURSOR_CLOSE", "CURSOR_ITER":
510+
with self.subTest(converter=converter):
511+
self.cur.execute(f'select x as "x [{converter}]", x from test')
512+
self.assertRaises(sqlite.ProgrammingError, self.cur.fetchall)
522513

523514

524515
if __name__ == "__main__":

0 commit comments

Comments
 (0)