@@ -273,6 +273,36 @@ def test_cursor_context_handler(self):
273273 self .assertEqual (cursor .fetchone (), 'test' )
274274 self .assertEqual (db ._con .open_cursors , 0 )
275275
276+ def test_cursor_as_iterator_provided (self ):
277+ db = SteadyDBconnect (
278+ dbapi , 0 , None , None , None , True ,
279+ 'SteadyDBTestDB' , user = 'SteadyDBTestUser' )
280+ self .assertEqual (db ._con .open_cursors , 0 )
281+ cursor = db .cursor ()
282+ self .assertEqual (db ._con .open_cursors , 1 )
283+ cursor .execute ('select test' )
284+ _cursor = cursor ._cursor
285+ try :
286+ assert not hasattr (_cursor , 'iter' )
287+ _cursor .__iter__ = lambda : ['test-iter' ]
288+ assert list (iter (cursor )) == ['test' ]
289+ finally :
290+ del _cursor .__iter__
291+ cursor .close ()
292+ self .assertEqual (db ._con .open_cursors , 0 )
293+
294+ def test_cursor_as_iterator_created (self ):
295+ db = SteadyDBconnect (
296+ dbapi , 0 , None , None , None , True ,
297+ 'SteadyDBTestDB' , user = 'SteadyDBTestUser' )
298+ self .assertEqual (db ._con .open_cursors , 0 )
299+ cursor = db .cursor ()
300+ self .assertEqual (db ._con .open_cursors , 1 )
301+ cursor .execute ('select test' )
302+ assert list (iter (cursor )) == ['test' ]
303+ cursor .close ()
304+ self .assertEqual (db ._con .open_cursors , 0 )
305+
276306 def test_connection_creator_function (self ):
277307 db1 = SteadyDBconnect (
278308 dbapi , 0 , None , None , None , True ,
0 commit comments