@@ -443,6 +443,16 @@ def test_state(self):
443
443
status ["state" ] = state
444
444
self .assertEqual (job .state , state )
445
445
446
+ def test_reservation_id (self ):
447
+ reservation_id = "RESERVATION-ID"
448
+ client = _make_client (project = self .PROJECT )
449
+ job = self ._make_one (self .JOB_ID , client )
450
+ self .assertIsNone (job .reservation_id )
451
+ stats = job ._properties ["statistics" ] = {}
452
+ self .assertIsNone (job .reservation_id )
453
+ stats ["reservation_id" ] = reservation_id
454
+ self .assertEqual (job .reservation_id , reservation_id )
455
+
446
456
def _set_properties_job (self ):
447
457
client = _make_client (project = self .PROJECT )
448
458
job = self ._make_one (self .JOB_ID , client )
@@ -1188,31 +1198,37 @@ def test_fill_query_job_config_from_default(self):
1188
1198
job_config = QueryJobConfig ()
1189
1199
job_config .dry_run = True
1190
1200
job_config .maximum_bytes_billed = 1000
1201
+ job_config .reservation = "reservation_1"
1191
1202
1192
1203
default_job_config = QueryJobConfig ()
1193
1204
default_job_config .use_query_cache = True
1194
1205
default_job_config .maximum_bytes_billed = 2000
1206
+ default_job_config .reservation = "reservation_2"
1195
1207
1196
1208
final_job_config = job_config ._fill_from_default (default_job_config )
1197
1209
self .assertTrue (final_job_config .dry_run )
1198
1210
self .assertTrue (final_job_config .use_query_cache )
1199
1211
self .assertEqual (final_job_config .maximum_bytes_billed , 1000 )
1212
+ self .assertEqual (final_job_config .reservation , "reservation_1" )
1200
1213
1201
1214
def test_fill_load_job_from_default (self ):
1202
1215
from google .cloud .bigquery import LoadJobConfig
1203
1216
1204
1217
job_config = LoadJobConfig ()
1205
1218
job_config .create_session = True
1206
1219
job_config .encoding = "UTF-8"
1220
+ job_config .reservation = "reservation_1"
1207
1221
1208
1222
default_job_config = LoadJobConfig ()
1209
1223
default_job_config .ignore_unknown_values = True
1210
1224
default_job_config .encoding = "ISO-8859-1"
1225
+ default_job_config .reservation = "reservation_2"
1211
1226
1212
1227
final_job_config = job_config ._fill_from_default (default_job_config )
1213
1228
self .assertTrue (final_job_config .create_session )
1214
1229
self .assertTrue (final_job_config .ignore_unknown_values )
1215
1230
self .assertEqual (final_job_config .encoding , "UTF-8" )
1231
+ self .assertEqual (final_job_config .reservation , "reservation_1" )
1216
1232
1217
1233
def test_fill_from_default_conflict (self ):
1218
1234
from google .cloud .bigquery import QueryJobConfig
@@ -1232,10 +1248,12 @@ def test_fill_from_empty_default_conflict(self):
1232
1248
job_config = QueryJobConfig ()
1233
1249
job_config .dry_run = True
1234
1250
job_config .maximum_bytes_billed = 1000
1251
+ job_config .reservation = "reservation_1"
1235
1252
1236
1253
final_job_config = job_config ._fill_from_default (default_job_config = None )
1237
1254
self .assertTrue (final_job_config .dry_run )
1238
1255
self .assertEqual (final_job_config .maximum_bytes_billed , 1000 )
1256
+ self .assertEqual (final_job_config .reservation , "reservation_1" )
1239
1257
1240
1258
@mock .patch ("google.cloud.bigquery._helpers._get_sub_prop" )
1241
1259
def test__get_sub_prop_wo_default (self , _get_sub_prop ):
@@ -1338,3 +1356,27 @@ def test_job_timeout_properties(self):
1338
1356
job_config .job_timeout_ms = None
1339
1357
assert job_config .job_timeout_ms is None
1340
1358
assert "jobTimeoutMs" not in job_config ._properties
1359
+
1360
+ def test_reservation_miss (self ):
1361
+ job_config = self ._make_one ()
1362
+ self .assertEqual (job_config .reservation , None )
1363
+
1364
+ def test_reservation_hit (self ):
1365
+ job_config = self ._make_one ()
1366
+ job_config ._properties ["reservation" ] = "foo"
1367
+ self .assertEqual (job_config .reservation , "foo" )
1368
+
1369
+ def test_reservation_update_in_place (self ):
1370
+ job_config = self ._make_one ()
1371
+ job_config .reservation = "bar" # update in place
1372
+ self .assertEqual (job_config .reservation , "bar" )
1373
+
1374
+ def test_reservation_setter_invalid (self ):
1375
+ job_config = self ._make_one ()
1376
+ with self .assertRaises (ValueError ):
1377
+ job_config .reservation = object ()
1378
+
1379
+ def test_reservation_setter (self ):
1380
+ job_config = self ._make_one ()
1381
+ job_config .reservation = "foo"
1382
+ self .assertEqual (job_config ._properties ["reservation" ], "foo" )
0 commit comments