diff --git a/google/cloud/spanner_dbapi/cursor.py b/google/cloud/spanner_dbapi/cursor.py index 7e169e14b7..84b35292f0 100644 --- a/google/cloud/spanner_dbapi/cursor.py +++ b/google/cloud/spanner_dbapi/cursor.py @@ -14,7 +14,6 @@ """Database cursor for Google Cloud Spanner DB API.""" -import warnings from collections import namedtuple import sqlparse @@ -137,15 +136,11 @@ def description(self): def rowcount(self): """The number of rows produced by the last `execute()` call. - :raises: :class:`NotImplemented`. + The property is non-operational and always returns -1. Request + resulting rows are streamed by the `fetch*()` methods and + can't be counted before they are all streamed. """ - warnings.warn( - "The `rowcount` property is non-operational. Request " - "resulting rows are streamed by the `fetch*()` methods " - "and can't be counted before they are all streamed.", - UserWarning, - stacklevel=2, - ) + return -1 @check_not_closed def callproc(self, procname, args=None): diff --git a/tests/unit/spanner_dbapi/test_cursor.py b/tests/unit/spanner_dbapi/test_cursor.py index 90d07eb3db..f7607b79bd 100644 --- a/tests/unit/spanner_dbapi/test_cursor.py +++ b/tests/unit/spanner_dbapi/test_cursor.py @@ -61,19 +61,11 @@ def test_property_description(self): self.assertIsNotNone(cursor.description) self.assertIsInstance(cursor.description[0], ColumnInfo) - @mock.patch("warnings.warn") - def test_property_rowcount(self, warn_mock): + def test_property_rowcount(self): connection = self._make_connection(self.INSTANCE, self.DATABASE) cursor = self._make_one(connection) - cursor.rowcount - warn_mock.assert_called_once_with( - "The `rowcount` property is non-operational. Request " - "resulting rows are streamed by the `fetch*()` methods " - "and can't be counted before they are all streamed.", - UserWarning, - stacklevel=2, - ) + assert cursor.rowcount == -1 def test_callproc(self): from google.cloud.spanner_dbapi.exceptions import InterfaceError