11
11
# ANY KIND, either express or implied. See the License for the specific
12
12
# language governing permissions and limitations under the License.
13
13
"""Test suite for aws_encryption_sdk.key_providers.base.MasterKeyProvider"""
14
- import unittest
15
-
16
14
import attr
17
15
import pytest
18
16
import six
@@ -63,21 +61,23 @@ def test_repr():
63
61
)
64
62
65
63
66
- class TestBaseMasterKeyProvider (unittest . TestCase ):
64
+ class TestBaseMasterKeyProvider (object ):
67
65
def test_provider_id_enforcement (self ):
68
66
class TestProvider (MasterKeyProvider ):
69
67
def _new_master_key (self , key_id ):
70
68
pass
71
69
72
- with six . assertRaisesRegex ( self , TypeError , "Can't instantiate abstract class TestProvider *" ) :
70
+ with pytest . raises ( TypeError ) as excinfo :
73
71
TestProvider ()
72
+ excinfo .match ("Can't instantiate abstract class TestProvider *" )
74
73
75
74
def test_new_master_key_enforcement (self ):
76
75
class TestProvider (MasterKeyProvider ):
77
76
provider_id = None
78
77
79
- with six . assertRaisesRegex ( self , TypeError , "Can't instantiate abstract class TestProvider *" ) :
78
+ with pytest . raises ( TypeError ) as excinfo :
80
79
TestProvider ()
80
+ excinfo .match ("Can't instantiate abstract class TestProvider *" )
81
81
82
82
def test_master_keys_for_encryption (self ):
83
83
mock_master_key_a = MagicMock ()
@@ -124,12 +124,13 @@ def test_master_keys_for_encryption_no_master_keys(self):
124
124
mock_master_key_provider = MockMasterKeyProvider (
125
125
provider_id = sentinel .provider_id , mock_new_master_key = sentinel .new_master_key
126
126
)
127
- with six . assertRaisesRegex ( self , MasterKeyProviderError , "No Master Keys available from Master Key Provider" ) :
127
+ with pytest . raises ( MasterKeyProviderError ) as excinfo :
128
128
mock_master_key_provider .master_keys_for_encryption (
129
129
encryption_context = sentinel .encryption_context ,
130
130
plaintext_rostream = sentinel .plaintext_rostream ,
131
131
plaintext_length = sentinel .plaintext_length ,
132
132
)
133
+ excinfo .match ("No Master Keys available from Master Key Provider" )
133
134
134
135
def test_add_master_keys_from_list (self ):
135
136
mock_master_key_provider = MockMasterKeyProvider (
@@ -305,12 +306,13 @@ def test_decrypt_data_key_unsuccessful_no_matching_members(self):
305
306
provider_id = sentinel .provider_id , mock_new_master_key = mock_master_key
306
307
)
307
308
mock_master_key_provider ._members = [mock_member ]
308
- with six . assertRaisesRegex ( self , DecryptKeyError , "Unable to decrypt data key" ) :
309
+ with pytest . raises ( DecryptKeyError ) as excinfo :
309
310
mock_master_key_provider .decrypt_data_key (
310
311
encrypted_data_key = mock_encrypted_data_key ,
311
312
algorithm = sentinel .algorithm ,
312
313
encryption_context = sentinel .encryption_context ,
313
314
)
315
+ excinfo .match ("Unable to decrypt data key" )
314
316
315
317
def test_decrypt_data_key_unsuccessful_matching_provider_invalid_key_id (self ):
316
318
mock_encrypted_data_key = MagicMock ()
@@ -323,12 +325,13 @@ def test_decrypt_data_key_unsuccessful_matching_provider_invalid_key_id(self):
323
325
with patch .object (
324
326
mock_master_key_provider , "master_key_for_decrypt" , new_callable = PropertyMock , side_effect = InvalidKeyIdError
325
327
) as mock_master_key :
326
- with six . assertRaisesRegex ( self , DecryptKeyError , "Unable to decrypt data key" ) :
328
+ with pytest . raises ( DecryptKeyError ) as excinfo :
327
329
mock_master_key_provider .decrypt_data_key (
328
330
encrypted_data_key = mock_encrypted_data_key ,
329
331
algorithm = sentinel .algorithm ,
330
332
encryption_context = sentinel .encryption_context ,
331
333
)
334
+ excinfo .match ("Unable to decrypt data key" )
332
335
mock_master_key .assert_called_once_with (sentinel .key_info )
333
336
334
337
def test_decrypt_data_key_unsuccessful_no_matching_members_no_vend (self ):
@@ -340,12 +343,13 @@ def test_decrypt_data_key_unsuccessful_no_matching_members_no_vend(self):
340
343
mock_master_key_provider = MockMasterKeyProviderNoVendOnDecrypt (provider_id = sentinel .provider_id )
341
344
mock_master_key_provider ._members = [mock_member ]
342
345
mock_master_key_provider .master_key_for_decrypt = MagicMock ()
343
- with six . assertRaisesRegex ( self , DecryptKeyError , "Unable to decrypt data key" ) :
346
+ with pytest . raises ( DecryptKeyError ) as excinfo :
344
347
mock_master_key_provider .decrypt_data_key (
345
348
encrypted_data_key = mock_encrypted_data_key ,
346
349
algorithm = sentinel .algorithm ,
347
350
encryption_context = sentinel .encryption_context ,
348
351
)
352
+ excinfo .match ("Unable to decrypt data key" )
349
353
assert not mock_master_key_provider .master_key_for_decrypt .called
350
354
351
355
def test_decrypt_data_key_unsuccessful_invalid_key_info (self ):
@@ -359,12 +363,13 @@ def test_decrypt_data_key_unsuccessful_invalid_key_info(self):
359
363
provider_id = sentinel .provider_id_2 , mock_new_master_key = sentinel .new_master_key
360
364
)
361
365
mock_master_key_provider ._members = [mock_member ]
362
- with six . assertRaisesRegex ( self , DecryptKeyError , "Unable to decrypt data key" ) :
366
+ with pytest . raises ( DecryptKeyError ) as excinfo :
363
367
mock_master_key_provider .decrypt_data_key (
364
368
encrypted_data_key = mock_encrypted_data_key ,
365
369
algorithm = sentinel .algorithm ,
366
370
encryption_context = sentinel .encryption_context ,
367
371
)
372
+ excinfo .match ("Unable to decrypt data key" )
368
373
369
374
def test_decrypt_data_key_unsuccessful_incorrect_master_key (self ):
370
375
mock_member = MagicMock ()
@@ -379,12 +384,13 @@ def test_decrypt_data_key_unsuccessful_incorrect_master_key(self):
379
384
provider_id = sentinel .provider_id_2 , mock_new_master_key = sentinel .new_master_key
380
385
)
381
386
mock_master_key_provider ._members = [mock_member ]
382
- with six . assertRaisesRegex ( self , DecryptKeyError , "Unable to decrypt data key" ) :
387
+ with pytest . raises ( DecryptKeyError ) as excinfo :
383
388
mock_master_key_provider .decrypt_data_key (
384
389
encrypted_data_key = mock_encrypted_data_key ,
385
390
algorithm = sentinel .algorithm ,
386
391
encryption_context = sentinel .encryption_context ,
387
392
)
393
+ excinfo .match ("Unable to decrypt data key" )
388
394
389
395
def test_decrypt_data_key_unsuccessful_master_key_decryt_error (self ):
390
396
mock_member = MagicMock ()
@@ -401,24 +407,26 @@ def test_decrypt_data_key_unsuccessful_master_key_decryt_error(self):
401
407
provider_id = sentinel .provider_id , mock_new_master_key = mock_master_key
402
408
)
403
409
mock_master_key_provider ._members = [mock_member ]
404
- with six . assertRaisesRegex ( self , DecryptKeyError , "Unable to decrypt data key" ) :
410
+ with pytest . raises ( DecryptKeyError ) as excinfo :
405
411
mock_master_key_provider .decrypt_data_key (
406
412
encrypted_data_key = mock_encrypted_data_key ,
407
413
algorithm = sentinel .algorithm ,
408
414
encryption_context = sentinel .encryption_context ,
409
415
)
416
+ excinfo .match ("Unable to decrypt data key" )
410
417
411
418
def test_decrypt_data_key_unsuccessful_no_members (self ):
412
419
mock_master_key_provider = MockMasterKeyProvider (
413
420
provider_id = sentinel .provider_id , mock_new_master_key = sentinel .new_master_key
414
421
)
415
422
mock_master_key_provider ._members = []
416
- with six . assertRaisesRegex ( self , DecryptKeyError , "Unable to decrypt data key" ) :
423
+ with pytest . raises ( DecryptKeyError ) as excinfo :
417
424
mock_master_key_provider .decrypt_data_key (
418
425
encrypted_data_key = MagicMock (),
419
426
algorithm = sentinel .algorithm ,
420
427
encryption_context = sentinel .encryption_context ,
421
428
)
429
+ excinfo .match ("Unable to decrypt data key" )
422
430
423
431
def test_decrypt_data_key_from_list_first_try (self ):
424
432
mock_decrypt_data_key = MagicMock ()
@@ -463,9 +471,10 @@ def test_decrypt_data_key_from_list_unsuccessful(self):
463
471
)
464
472
mock_master_key_provider .decrypt_data_key = MagicMock ()
465
473
mock_master_key_provider .decrypt_data_key .side_effect = (DecryptKeyError , DecryptKeyError )
466
- with six . assertRaisesRegex ( self , DecryptKeyError , "Unable to decrypt any data key" ) :
474
+ with pytest . raises ( DecryptKeyError ) as excinfo :
467
475
mock_master_key_provider .decrypt_data_key_from_list (
468
476
encrypted_data_keys = [sentinel .encrypted_data_key_a , sentinel .encrypted_data_key_b ],
469
477
algorithm = sentinel .algorithm ,
470
478
encryption_context = sentinel .encryption_context ,
471
479
)
480
+ excinfo .match ("Unable to decrypt any data key" )
0 commit comments