File tree 2 files changed +18
-1
lines changed
google/cloud/bigquery/dbapi
2 files changed +18
-1
lines changed Original file line number Diff line number Diff line change @@ -76,7 +76,8 @@ def close(self):
76
76
self ._bqstorage_client ._transport .grpc_channel .close ()
77
77
78
78
for cursor_ in self ._cursors_created :
79
- cursor_ .close ()
79
+ if not cursor_ ._closed :
80
+ cursor_ .close ()
80
81
81
82
def commit (self ):
82
83
"""No-op, but for consistency raise an error if connection is closed."""
Original file line number Diff line number Diff line change @@ -176,6 +176,22 @@ def test_close_closes_all_created_cursors(self):
176
176
self .assertTrue (cursor_1 ._closed )
177
177
self .assertTrue (cursor_2 ._closed )
178
178
179
+ def test_close_closes_only_open_created_cursors (self ):
180
+ connection = self ._make_one (client = self ._mock_client ())
181
+ cursor_1 = connection .cursor ()
182
+ cursor_2 = connection .cursor ()
183
+ self .assertFalse (cursor_1 ._closed )
184
+ self .assertFalse (cursor_2 ._closed )
185
+
186
+ cursor_1 .close ()
187
+ self .assertTrue (cursor_1 ._closed )
188
+ cursor_1 .close = mock .MagicMock ()
189
+
190
+ connection .close ()
191
+
192
+ self .assertFalse (cursor_1 .close .called )
193
+ self .assertTrue (cursor_2 ._closed )
194
+
179
195
def test_does_not_keep_cursor_instances_alive (self ):
180
196
from google .cloud .bigquery .dbapi import Cursor
181
197
You can’t perform that action at this time.
0 commit comments