Skip to content

Commit 5851522

Browse files
tseavercrwilcox
andauthored
fix: normalize / test deprecation of 'Client.reserve_ids' (#103)
Closes #101 Closes #100 Co-authored-by: Christopher Wilcox <crwilcox@google.com>
1 parent 556c8f0 commit 5851522

File tree

2 files changed

+47
-11
lines changed

2 files changed

+47
-11
lines changed

google/cloud/datastore/client.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,10 @@
6060
DISABLE_GRPC = "GOOGLE_CLOUD_DISABLE_GRPC"
6161
"""Environment variable acting as flag to disable gRPC."""
6262

63+
_RESERVE_IDS_DEPRECATED_MESSAGE = """\
64+
Client.reserve_ids is deprecated. Please use \
65+
Client.reserve_ids_multi or Client.reserve_ids_sequential"""
66+
6367

6468
_USE_GRPC = _HAVE_GRPC and not os.getenv(DISABLE_GRPC, False)
6569

@@ -890,11 +894,7 @@ def reserve_ids(self, complete_key, num_ids, retry=None, timeout=None):
890894
Please use either :meth:`reserve_ids_multi` (recommended) or
891895
:meth:`reserve_ids_sequential`.
892896
"""
893-
message = (
894-
"Client.reserve_ids is deprecated. Please use "
895-
"Client.reserve_ids_multi or Client.reserve_ids_sequential",
896-
)
897-
warnings.warn(message, DeprecationWarning)
897+
warnings.warn(_RESERVE_IDS_DEPRECATED_MESSAGE, DeprecationWarning)
898898
return self.reserve_ids_sequential(
899899
complete_key, num_ids, retry=retry, timeout=timeout
900900
)

tests/unit/test_client.py

Lines changed: 42 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1113,6 +1113,8 @@ def test_reserve_ids_sequential_w_non_numeric_key_name(self):
11131113
client.reserve_ids_sequential(complete_key, num_ids)
11141114

11151115
def test_reserve_ids_w_completed_key(self):
1116+
import warnings
1117+
11161118
num_ids = 2
11171119
creds = _make_credentials()
11181120
client = self._make_one(credentials=creds, _use_grpc=False)
@@ -1122,7 +1124,8 @@ def test_reserve_ids_w_completed_key(self):
11221124
client._datastore_api_internal = ds_api
11231125
self.assertTrue(not complete_key.is_partial)
11241126

1125-
client.reserve_ids(complete_key, num_ids)
1127+
with warnings.catch_warnings(record=True) as warned:
1128+
client.reserve_ids(complete_key, num_ids)
11261129

11271130
reserved_keys = (
11281131
_Key(_Key.kind, id)
@@ -1133,7 +1136,12 @@ def test_reserve_ids_w_completed_key(self):
11331136
request={"project_id": self.PROJECT, "keys": expected_keys}
11341137
)
11351138

1139+
self.assertEqual(len(warned), 1)
1140+
self.assertIn("Client.reserve_ids is deprecated.", str(warned[0].message))
1141+
11361142
def test_reserve_ids_w_completed_key_w_retry_w_timeout(self):
1143+
import warnings
1144+
11371145
num_ids = 2
11381146
retry = mock.Mock()
11391147
timeout = 100000
@@ -1146,7 +1154,8 @@ def test_reserve_ids_w_completed_key_w_retry_w_timeout(self):
11461154
ds_api = mock.Mock(reserve_ids=reserve_ids, spec=["reserve_ids"])
11471155
client._datastore_api_internal = ds_api
11481156

1149-
client.reserve_ids(complete_key, num_ids, retry=retry, timeout=timeout)
1157+
with warnings.catch_warnings(record=True) as warned:
1158+
client.reserve_ids(complete_key, num_ids, retry=retry, timeout=timeout)
11501159

11511160
reserved_keys = (
11521161
_Key(_Key.kind, id)
@@ -1159,7 +1168,12 @@ def test_reserve_ids_w_completed_key_w_retry_w_timeout(self):
11591168
timeout=timeout,
11601169
)
11611170

1171+
self.assertEqual(len(warned), 1)
1172+
self.assertIn("Client.reserve_ids is deprecated.", str(warned[0].message))
1173+
11621174
def test_reserve_ids_w_completed_key_w_ancestor(self):
1175+
import warnings
1176+
11631177
num_ids = 2
11641178
creds = _make_credentials()
11651179
client = self._make_one(credentials=creds, _use_grpc=False)
@@ -1169,7 +1183,8 @@ def test_reserve_ids_w_completed_key_w_ancestor(self):
11691183
client._datastore_api_internal = ds_api
11701184
self.assertTrue(not complete_key.is_partial)
11711185

1172-
client.reserve_ids(complete_key, num_ids)
1186+
with warnings.catch_warnings(record=True) as warned:
1187+
client.reserve_ids(complete_key, num_ids)
11731188

11741189
reserved_keys = (
11751190
_Key("PARENT", "SINGLETON", _Key.kind, id)
@@ -1180,29 +1195,50 @@ def test_reserve_ids_w_completed_key_w_ancestor(self):
11801195
request={"project_id": self.PROJECT, "keys": expected_keys}
11811196
)
11821197

1198+
self.assertEqual(len(warned), 1)
1199+
self.assertIn("Client.reserve_ids is deprecated.", str(warned[0].message))
1200+
11831201
def test_reserve_ids_w_partial_key(self):
1202+
import warnings
1203+
11841204
num_ids = 2
11851205
incomplete_key = _Key(_Key.kind, None)
11861206
creds = _make_credentials()
11871207
client = self._make_one(credentials=creds)
11881208
with self.assertRaises(ValueError):
1189-
client.reserve_ids(incomplete_key, num_ids)
1209+
with warnings.catch_warnings(record=True) as warned:
1210+
client.reserve_ids(incomplete_key, num_ids)
1211+
1212+
self.assertEqual(len(warned), 1)
1213+
self.assertIn("Client.reserve_ids is deprecated.", str(warned[0].message))
11901214

11911215
def test_reserve_ids_w_wrong_num_ids(self):
1216+
import warnings
1217+
11921218
num_ids = "2"
11931219
complete_key = _Key()
11941220
creds = _make_credentials()
11951221
client = self._make_one(credentials=creds)
11961222
with self.assertRaises(ValueError):
1197-
client.reserve_ids(complete_key, num_ids)
1223+
with warnings.catch_warnings(record=True) as warned:
1224+
client.reserve_ids(complete_key, num_ids)
1225+
1226+
self.assertEqual(len(warned), 1)
1227+
self.assertIn("Client.reserve_ids is deprecated.", str(warned[0].message))
11981228

11991229
def test_reserve_ids_w_non_numeric_key_name(self):
1230+
import warnings
1231+
12001232
num_ids = 2
12011233
complete_key = _Key(_Key.kind, "batman")
12021234
creds = _make_credentials()
12031235
client = self._make_one(credentials=creds)
12041236
with self.assertRaises(ValueError):
1205-
client.reserve_ids(complete_key, num_ids)
1237+
with warnings.catch_warnings(record=True) as warned:
1238+
client.reserve_ids(complete_key, num_ids)
1239+
1240+
self.assertEqual(len(warned), 1)
1241+
self.assertIn("Client.reserve_ids is deprecated.", str(warned[0].message))
12061242

12071243
def test_reserve_ids_multi(self):
12081244
creds = _make_credentials()

0 commit comments

Comments
 (0)