Skip to content

Commit 1ed5a47

Browse files
authored
fix: Few fixes in DBAPI (#1085)
* fix: Few fixes in DBAPI * Small fix * Test fix
1 parent 5b94dac commit 1ed5a47

File tree

3 files changed

+11
-3
lines changed

3 files changed

+11
-3
lines changed

google/cloud/spanner_dbapi/connection.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -273,10 +273,11 @@ def _release_session(self):
273273
274274
The session will be returned into the sessions pool.
275275
"""
276+
if self._session is None:
277+
return
276278
if self.database is None:
277279
raise ValueError("Database needs to be passed for this operation")
278-
if self._session is not None:
279-
self.database._pool.put(self._session)
280+
self.database._pool.put(self._session)
280281
self._session = None
281282

282283
def transaction_checkout(self):

google/cloud/spanner_dbapi/cursor.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,13 @@ def description(self):
124124
:rtype: tuple
125125
:returns: The result columns' description.
126126
"""
127-
if not getattr(self._result_set, "metadata", None):
127+
if (
128+
self._result_set is None
129+
or self._result_set.metadata is None
130+
or self._result_set.metadata.row_type is None
131+
or self._result_set.metadata.row_type.fields is None
132+
or len(self._result_set.metadata.row_type.fields) == 0
133+
):
128134
return
129135

130136
columns = []

tests/unit/spanner_dbapi/test_connection.py

+1
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ def test__release_session(self, mock_database):
160160

161161
def test_release_session_database_error(self):
162162
connection = Connection(INSTANCE)
163+
connection._session = "session"
163164
with pytest.raises(ValueError):
164165
connection._release_session()
165166

0 commit comments

Comments
 (0)