@@ -62,18 +62,53 @@ def test_ctor_defaults(self):
62
62
self .assertIsNone (backup ._expire_time )
63
63
64
64
def test_ctor_non_defaults (self ):
65
+ from google .cloud .spanner_admin_database_v1 import CreateBackupEncryptionConfig
65
66
instance = _Instance (self .INSTANCE_NAME )
66
67
timestamp = self ._make_timestamp ()
67
68
69
+ encryption_config = CreateBackupEncryptionConfig (
70
+ encryption_type = CreateBackupEncryptionConfig .EncryptionType .CUSTOMER_MANAGED_ENCRYPTION ,
71
+ kms_key_name = "key_name"
72
+ )
68
73
backup = self ._make_one (
69
- self .BACKUP_ID , instance , database = self .DATABASE_NAME , expire_time = timestamp
74
+ self .BACKUP_ID ,
75
+ instance ,
76
+ database = self .DATABASE_NAME ,
77
+ expire_time = timestamp ,
78
+ encryption_config = encryption_config
70
79
)
71
80
72
81
self .assertEqual (backup .backup_id , self .BACKUP_ID )
73
82
self .assertIs (backup ._instance , instance )
74
83
self .assertEqual (backup ._database , self .DATABASE_NAME )
75
84
self .assertIsNotNone (backup ._expire_time )
76
85
self .assertIs (backup ._expire_time , timestamp )
86
+ self .assertEqual (backup .encryption_config , encryption_config )
87
+
88
+ def test_ctor_w_encryption_config_dict (self ):
89
+ from google .cloud .spanner_admin_database_v1 import CreateBackupEncryptionConfig
90
+ instance = _Instance (self .INSTANCE_NAME )
91
+ timestamp = self ._make_timestamp ()
92
+
93
+ encryption_config = {
94
+ "encryption_type" : 3 ,
95
+ "kms_key_name" : "key_name"
96
+ }
97
+ backup = self ._make_one (
98
+ self .BACKUP_ID ,
99
+ instance ,
100
+ database = self .DATABASE_NAME ,
101
+ expire_time = timestamp ,
102
+ encryption_config = encryption_config
103
+ )
104
+ expected_encryption_config = CreateBackupEncryptionConfig (** encryption_config )
105
+
106
+ self .assertEqual (backup .backup_id , self .BACKUP_ID )
107
+ self .assertIs (backup ._instance , instance )
108
+ self .assertEqual (backup ._database , self .DATABASE_NAME )
109
+ self .assertIsNotNone (backup ._expire_time )
110
+ self .assertIs (backup ._expire_time , timestamp )
111
+ self .assertEqual (backup .encryption_config , expected_encryption_config )
77
112
78
113
def test_from_pb_project_mismatch (self ):
79
114
from google .cloud .spanner_admin_database_v1 import Backup
@@ -180,10 +215,22 @@ def test_encrpytion_info_property(self):
180
215
)
181
216
self .assertEqual (backup .encryption_info , expected )
182
217
218
+ def test_encryption_config_property (self ):
219
+ from google .cloud .spanner_admin_database_v1 import CreateBackupEncryptionConfig
220
+
221
+ instance = _Instance (self .INSTANCE_NAME )
222
+ backup = self ._make_one (self .BACKUP_ID , instance )
223
+ expected = backup ._encryption_config = CreateBackupEncryptionConfig (
224
+ encryption_type = CreateBackupEncryptionConfig .EncryptionType .CUSTOMER_MANAGED_ENCRYPTION ,
225
+ kms_key_name = "kms_key_name"
226
+ )
227
+ self .assertEqual (backup .encryption_config , expected )
228
+
183
229
def test_create_grpc_error (self ):
184
230
from google .api_core .exceptions import GoogleAPICallError
185
231
from google .api_core .exceptions import Unknown
186
232
from google .cloud .spanner_admin_database_v1 import Backup
233
+ from google .cloud .spanner_admin_database_v1 import CreateBackupRequest
187
234
188
235
client = _Client ()
189
236
api = client .database_admin_api = self ._make_database_admin_api ()
@@ -200,16 +247,22 @@ def test_create_grpc_error(self):
200
247
with self .assertRaises (GoogleAPICallError ):
201
248
backup .create ()
202
249
203
- api . create_backup . assert_called_once_with (
250
+ request = CreateBackupRequest (
204
251
parent = self .INSTANCE_NAME ,
205
252
backup_id = self .BACKUP_ID ,
206
253
backup = backup_pb ,
254
+ )
255
+
256
+ api .create_backup .assert_called_once_with (
257
+ request = request ,
207
258
metadata = [("google-cloud-resource-prefix" , backup .name )],
208
259
)
209
260
261
+
210
262
def test_create_already_exists (self ):
211
263
from google .cloud .exceptions import Conflict
212
264
from google .cloud .spanner_admin_database_v1 import Backup
265
+ from google .cloud .spanner_admin_database_v1 import CreateBackupRequest
213
266
214
267
client = _Client ()
215
268
api = client .database_admin_api = self ._make_database_admin_api ()
@@ -226,16 +279,22 @@ def test_create_already_exists(self):
226
279
with self .assertRaises (Conflict ):
227
280
backup .create ()
228
281
229
- api . create_backup . assert_called_once_with (
282
+ request = CreateBackupRequest (
230
283
parent = self .INSTANCE_NAME ,
231
284
backup_id = self .BACKUP_ID ,
232
285
backup = backup_pb ,
286
+ )
287
+
288
+ api .create_backup .assert_called_once_with (
289
+ request = request ,
233
290
metadata = [("google-cloud-resource-prefix" , backup .name )],
234
291
)
235
292
293
+
236
294
def test_create_instance_not_found (self ):
237
295
from google .cloud .exceptions import NotFound
238
296
from google .cloud .spanner_admin_database_v1 import Backup
297
+ from google .cloud .spanner_admin_database_v1 import CreateBackupRequest
239
298
240
299
client = _Client ()
241
300
api = client .database_admin_api = self ._make_database_admin_api ()
@@ -252,13 +311,18 @@ def test_create_instance_not_found(self):
252
311
with self .assertRaises (NotFound ):
253
312
backup .create ()
254
313
255
- api . create_backup . assert_called_once_with (
314
+ request = CreateBackupRequest (
256
315
parent = self .INSTANCE_NAME ,
257
316
backup_id = self .BACKUP_ID ,
258
317
backup = backup_pb ,
318
+ )
319
+
320
+ api .create_backup .assert_called_once_with (
321
+ request = request ,
259
322
metadata = [("google-cloud-resource-prefix" , backup .name )],
260
323
)
261
324
325
+
262
326
def test_create_expire_time_not_set (self ):
263
327
instance = _Instance (self .INSTANCE_NAME )
264
328
backup = self ._make_one (self .BACKUP_ID , instance , database = self .DATABASE_NAME )
@@ -276,6 +340,8 @@ def test_create_database_not_set(self):
276
340
277
341
def test_create_success (self ):
278
342
from google .cloud .spanner_admin_database_v1 import Backup
343
+ from google .cloud .spanner_admin_database_v1 import CreateBackupRequest
344
+ from google .cloud .spanner_admin_database_v1 import CreateBackupEncryptionConfig
279
345
280
346
op_future = object ()
281
347
client = _Client ()
@@ -284,19 +350,33 @@ def test_create_success(self):
284
350
285
351
instance = _Instance (self .INSTANCE_NAME , client = client )
286
352
timestamp = self ._make_timestamp ()
353
+ encryption_config = {
354
+ "encryption_type" : 3 ,
355
+ "kms_key_name" : "key_name"
356
+ }
287
357
backup = self ._make_one (
288
- self .BACKUP_ID , instance , database = self .DATABASE_NAME , expire_time = timestamp
358
+ self .BACKUP_ID ,
359
+ instance ,
360
+ database = self .DATABASE_NAME ,
361
+ expire_time = timestamp ,
362
+ encryption_config = encryption_config
289
363
)
290
364
291
- backup_pb = Backup (database = self .DATABASE_NAME , expire_time = timestamp , )
365
+ backup_pb = Backup (database = self .DATABASE_NAME , expire_time = timestamp )
292
366
293
367
future = backup .create ()
294
368
self .assertIs (future , op_future )
295
369
296
- api .create_backup .assert_called_once_with (
370
+ expected_encryption_config = CreateBackupEncryptionConfig (** encryption_config )
371
+ request = CreateBackupRequest (
297
372
parent = self .INSTANCE_NAME ,
298
373
backup_id = self .BACKUP_ID ,
299
374
backup = backup_pb ,
375
+ encryption_config = expected_encryption_config
376
+ )
377
+
378
+ api .create_backup .assert_called_once_with (
379
+ request = request ,
300
380
metadata = [("google-cloud-resource-prefix" , backup .name )],
301
381
)
302
382
0 commit comments