@@ -273,6 +273,36 @@ def test_cursor_context_handler(self):
273
273
self .assertEqual (cursor .fetchone (), 'test' )
274
274
self .assertEqual (db ._con .open_cursors , 0 )
275
275
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
+
276
306
def test_connection_creator_function (self ):
277
307
db1 = SteadyDBconnect (
278
308
dbapi , 0 , None , None , None , True ,
0 commit comments