Skip to content

Commit 33c55ae

Browse files
ansanpermattsb42-aws
authored andcommitted
Migrate "test/unit/test_providers_base_master_key_provider.py" from unittest to pytest (#120)
* Migrate unit/test_defaults.py from unittest to pytest * Migrate unit/test_providers_base_master_key.py from unittest to pytest * Migrate unit/test_providers_base_master_key_provider.py from unitteest to pytest * Removed unit tests not corresponding to this branch * Removed unused import
1 parent 5c4232a commit 33c55ae

File tree

1 file changed

+23
-15
lines changed

1 file changed

+23
-15
lines changed

test/unit/test_providers_base_master_key_provider.py

+23-15
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,8 @@
1111
# ANY KIND, either express or implied. See the License for the specific
1212
# language governing permissions and limitations under the License.
1313
"""Test suite for aws_encryption_sdk.key_providers.base.MasterKeyProvider"""
14-
import unittest
15-
1614
import attr
1715
import pytest
18-
import six
1916
from mock import MagicMock, PropertyMock, call, patch, sentinel
2017

2118
from aws_encryption_sdk.exceptions import (
@@ -63,21 +60,23 @@ def test_repr():
6360
)
6461

6562

66-
class TestBaseMasterKeyProvider(unittest.TestCase):
63+
class TestBaseMasterKeyProvider(object):
6764
def test_provider_id_enforcement(self):
6865
class TestProvider(MasterKeyProvider):
6966
def _new_master_key(self, key_id):
7067
pass
7168

72-
with six.assertRaisesRegex(self, TypeError, "Can't instantiate abstract class TestProvider *"):
69+
with pytest.raises(TypeError) as excinfo:
7370
TestProvider()
71+
excinfo.match("Can't instantiate abstract class TestProvider *")
7472

7573
def test_new_master_key_enforcement(self):
7674
class TestProvider(MasterKeyProvider):
7775
provider_id = None
7876

79-
with six.assertRaisesRegex(self, TypeError, "Can't instantiate abstract class TestProvider *"):
77+
with pytest.raises(TypeError) as excinfo:
8078
TestProvider()
79+
excinfo.match("Can't instantiate abstract class TestProvider *")
8180

8281
def test_master_keys_for_encryption(self):
8382
mock_master_key_a = MagicMock()
@@ -124,12 +123,13 @@ def test_master_keys_for_encryption_no_master_keys(self):
124123
mock_master_key_provider = MockMasterKeyProvider(
125124
provider_id=sentinel.provider_id, mock_new_master_key=sentinel.new_master_key
126125
)
127-
with six.assertRaisesRegex(self, MasterKeyProviderError, "No Master Keys available from Master Key Provider"):
126+
with pytest.raises(MasterKeyProviderError) as excinfo:
128127
mock_master_key_provider.master_keys_for_encryption(
129128
encryption_context=sentinel.encryption_context,
130129
plaintext_rostream=sentinel.plaintext_rostream,
131130
plaintext_length=sentinel.plaintext_length,
132131
)
132+
excinfo.match("No Master Keys available from Master Key Provider")
133133

134134
def test_add_master_keys_from_list(self):
135135
mock_master_key_provider = MockMasterKeyProvider(
@@ -305,12 +305,13 @@ def test_decrypt_data_key_unsuccessful_no_matching_members(self):
305305
provider_id=sentinel.provider_id, mock_new_master_key=mock_master_key
306306
)
307307
mock_master_key_provider._members = [mock_member]
308-
with six.assertRaisesRegex(self, DecryptKeyError, "Unable to decrypt data key"):
308+
with pytest.raises(DecryptKeyError) as excinfo:
309309
mock_master_key_provider.decrypt_data_key(
310310
encrypted_data_key=mock_encrypted_data_key,
311311
algorithm=sentinel.algorithm,
312312
encryption_context=sentinel.encryption_context,
313313
)
314+
excinfo.match("Unable to decrypt data key")
314315

315316
def test_decrypt_data_key_unsuccessful_matching_provider_invalid_key_id(self):
316317
mock_encrypted_data_key = MagicMock()
@@ -323,12 +324,13 @@ def test_decrypt_data_key_unsuccessful_matching_provider_invalid_key_id(self):
323324
with patch.object(
324325
mock_master_key_provider, "master_key_for_decrypt", new_callable=PropertyMock, side_effect=InvalidKeyIdError
325326
) as mock_master_key:
326-
with six.assertRaisesRegex(self, DecryptKeyError, "Unable to decrypt data key"):
327+
with pytest.raises(DecryptKeyError) as excinfo:
327328
mock_master_key_provider.decrypt_data_key(
328329
encrypted_data_key=mock_encrypted_data_key,
329330
algorithm=sentinel.algorithm,
330331
encryption_context=sentinel.encryption_context,
331332
)
333+
excinfo.match("Unable to decrypt data key")
332334
mock_master_key.assert_called_once_with(sentinel.key_info)
333335

334336
def test_decrypt_data_key_unsuccessful_no_matching_members_no_vend(self):
@@ -340,12 +342,13 @@ def test_decrypt_data_key_unsuccessful_no_matching_members_no_vend(self):
340342
mock_master_key_provider = MockMasterKeyProviderNoVendOnDecrypt(provider_id=sentinel.provider_id)
341343
mock_master_key_provider._members = [mock_member]
342344
mock_master_key_provider.master_key_for_decrypt = MagicMock()
343-
with six.assertRaisesRegex(self, DecryptKeyError, "Unable to decrypt data key"):
345+
with pytest.raises(DecryptKeyError) as excinfo:
344346
mock_master_key_provider.decrypt_data_key(
345347
encrypted_data_key=mock_encrypted_data_key,
346348
algorithm=sentinel.algorithm,
347349
encryption_context=sentinel.encryption_context,
348350
)
351+
excinfo.match("Unable to decrypt data key")
349352
assert not mock_master_key_provider.master_key_for_decrypt.called
350353

351354
def test_decrypt_data_key_unsuccessful_invalid_key_info(self):
@@ -359,12 +362,13 @@ def test_decrypt_data_key_unsuccessful_invalid_key_info(self):
359362
provider_id=sentinel.provider_id_2, mock_new_master_key=sentinel.new_master_key
360363
)
361364
mock_master_key_provider._members = [mock_member]
362-
with six.assertRaisesRegex(self, DecryptKeyError, "Unable to decrypt data key"):
365+
with pytest.raises(DecryptKeyError) as excinfo:
363366
mock_master_key_provider.decrypt_data_key(
364367
encrypted_data_key=mock_encrypted_data_key,
365368
algorithm=sentinel.algorithm,
366369
encryption_context=sentinel.encryption_context,
367370
)
371+
excinfo.match("Unable to decrypt data key")
368372

369373
def test_decrypt_data_key_unsuccessful_incorrect_master_key(self):
370374
mock_member = MagicMock()
@@ -379,12 +383,13 @@ def test_decrypt_data_key_unsuccessful_incorrect_master_key(self):
379383
provider_id=sentinel.provider_id_2, mock_new_master_key=sentinel.new_master_key
380384
)
381385
mock_master_key_provider._members = [mock_member]
382-
with six.assertRaisesRegex(self, DecryptKeyError, "Unable to decrypt data key"):
386+
with pytest.raises(DecryptKeyError) as excinfo:
383387
mock_master_key_provider.decrypt_data_key(
384388
encrypted_data_key=mock_encrypted_data_key,
385389
algorithm=sentinel.algorithm,
386390
encryption_context=sentinel.encryption_context,
387391
)
392+
excinfo.match("Unable to decrypt data key")
388393

389394
def test_decrypt_data_key_unsuccessful_master_key_decryt_error(self):
390395
mock_member = MagicMock()
@@ -401,24 +406,26 @@ def test_decrypt_data_key_unsuccessful_master_key_decryt_error(self):
401406
provider_id=sentinel.provider_id, mock_new_master_key=mock_master_key
402407
)
403408
mock_master_key_provider._members = [mock_member]
404-
with six.assertRaisesRegex(self, DecryptKeyError, "Unable to decrypt data key"):
409+
with pytest.raises(DecryptKeyError) as excinfo:
405410
mock_master_key_provider.decrypt_data_key(
406411
encrypted_data_key=mock_encrypted_data_key,
407412
algorithm=sentinel.algorithm,
408413
encryption_context=sentinel.encryption_context,
409414
)
415+
excinfo.match("Unable to decrypt data key")
410416

411417
def test_decrypt_data_key_unsuccessful_no_members(self):
412418
mock_master_key_provider = MockMasterKeyProvider(
413419
provider_id=sentinel.provider_id, mock_new_master_key=sentinel.new_master_key
414420
)
415421
mock_master_key_provider._members = []
416-
with six.assertRaisesRegex(self, DecryptKeyError, "Unable to decrypt data key"):
422+
with pytest.raises(DecryptKeyError) as excinfo:
417423
mock_master_key_provider.decrypt_data_key(
418424
encrypted_data_key=MagicMock(),
419425
algorithm=sentinel.algorithm,
420426
encryption_context=sentinel.encryption_context,
421427
)
428+
excinfo.match("Unable to decrypt data key")
422429

423430
def test_decrypt_data_key_from_list_first_try(self):
424431
mock_decrypt_data_key = MagicMock()
@@ -463,9 +470,10 @@ def test_decrypt_data_key_from_list_unsuccessful(self):
463470
)
464471
mock_master_key_provider.decrypt_data_key = MagicMock()
465472
mock_master_key_provider.decrypt_data_key.side_effect = (DecryptKeyError, DecryptKeyError)
466-
with six.assertRaisesRegex(self, DecryptKeyError, "Unable to decrypt any data key"):
473+
with pytest.raises(DecryptKeyError) as excinfo:
467474
mock_master_key_provider.decrypt_data_key_from_list(
468475
encrypted_data_keys=[sentinel.encrypted_data_key_a, sentinel.encrypted_data_key_b],
469476
algorithm=sentinel.algorithm,
470477
encryption_context=sentinel.encryption_context,
471478
)
479+
excinfo.match("Unable to decrypt any data key")

0 commit comments

Comments
 (0)