Skip to content

Commit a52a22f

Browse files
ansanpermattsb42-aws
authored andcommitted
Migrate "test/unit/test_providers_kms_master_key.py" from unittest to pytest (#121)
* Migrating unit/test_deserialize.py from unittest from pytest * Migrate unit/test_provides_kms_master_key.py from unittest to pytest * Removed unit test not corresponding to this branch * Added yield and tearDown to apply_fixtures function * Lintering issues, fixed with tox -re autoformat
1 parent 95efc91 commit a52a22f

File tree

1 file changed

+18
-14
lines changed

1 file changed

+18
-14
lines changed

test/unit/test_providers_kms_master_key.py

+18-14
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
"""Unit test suite for aws_encryption_sdk.key_providers.kms.KMSMasterKey"""
14-
import unittest
15-
1614
import botocore.client
1715
import pytest
18-
import six
1916
from botocore.exceptions import ClientError
2017
from mock import MagicMock, patch, sentinel
2118

@@ -30,8 +27,9 @@
3027
pytestmark = [pytest.mark.unit, pytest.mark.local]
3128

3229

33-
class TestKMSMasterKey(unittest.TestCase):
34-
def setUp(self):
30+
class TestKMSMasterKey(object):
31+
@pytest.fixture(autouse=True)
32+
def apply_fixture(self):
3533
self.mock_client = MagicMock()
3634
self.mock_client.__class__ = botocore.client.BaseClient
3735
self.mock_client.generate_data_key.return_value = {
@@ -59,13 +57,13 @@ def setUp(self):
5957
key_id=VALUES["arn"], client=self.mock_client, grant_tokens=self.mock_grant_tokens
6058
)
6159
self.mock_kms_mkc_3 = KMSMasterKeyConfig(key_id="ex_key_info", client=self.mock_client)
60+
yield
61+
# Run tearDown
62+
self.mock_data_key_len_check_patcher.stop()
6263

6364
def test_parent(self):
6465
assert issubclass(KMSMasterKey, MasterKey)
6566

66-
def tearDown(self):
67-
self.mock_data_key_len_check_patcher.stop()
68-
6967
def test_config_bare(self):
7068
test = KMSMasterKeyConfig(key_id=VALUES["arn"], client=self.mock_client)
7169
assert test.client is self.mock_client
@@ -111,14 +109,16 @@ def test_generate_data_key_with_grant_tokens(self):
111109
def test_generate_data_key_unsuccessful_clienterror(self):
112110
self.mock_client.generate_data_key.side_effect = ClientError({"Error": {}}, "This is an error!")
113111
test = KMSMasterKey(config=self.mock_kms_mkc_3)
114-
with six.assertRaisesRegex(self, GenerateKeyError, "Master Key .* unable to generate data key"):
112+
with pytest.raises(GenerateKeyError) as excinfo:
115113
test._generate_data_key(self.mock_algorithm)
114+
excinfo.match("Master Key .* unable to generate data key")
116115

117116
def test_generate_data_key_unsuccessful_keyerror(self):
118117
self.mock_client.generate_data_key.side_effect = KeyError
119118
test = KMSMasterKey(config=self.mock_kms_mkc_3)
120-
with six.assertRaisesRegex(self, GenerateKeyError, "Master Key .* unable to generate data key"):
119+
with pytest.raises(GenerateKeyError) as excinfo:
121120
test._generate_data_key(self.mock_algorithm)
121+
excinfo.match("Master Key .* unable to generate data key")
122122

123123
def test_encrypt_data_key(self):
124124
test = KMSMasterKey(config=self.mock_kms_mkc_3)
@@ -146,14 +146,16 @@ def test_encrypt_data_key_with_grant_tokens(self):
146146
def test_encrypt_data_key_unsuccessful_clienterror(self):
147147
self.mock_client.encrypt.side_effect = ClientError({"Error": {}}, "This is an error!")
148148
test = KMSMasterKey(config=self.mock_kms_mkc_3)
149-
with six.assertRaisesRegex(self, EncryptKeyError, "Master Key .* unable to encrypt data key"):
149+
with pytest.raises(EncryptKeyError) as excinfo:
150150
test._encrypt_data_key(self.mock_data_key, self.mock_algorithm)
151+
excinfo.match("Master Key .* unable to encrypt data key")
151152

152153
def test_encrypt_data_key_unsuccessful_keyerror(self):
153154
self.mock_client.encrypt.side_effect = KeyError
154155
test = KMSMasterKey(config=self.mock_kms_mkc_3)
155-
with six.assertRaisesRegex(self, EncryptKeyError, "Master Key .* unable to encrypt data key"):
156+
with pytest.raises(EncryptKeyError) as excinfo:
156157
test._encrypt_data_key(self.mock_data_key, self.mock_algorithm)
158+
excinfo.match("Master Key .* unable to encrypt data key")
157159

158160
def test_decrypt_data_key(self):
159161
test = KMSMasterKey(config=self.mock_kms_mkc_1)
@@ -186,11 +188,13 @@ def test_decrypt_data_key_with_grant_tokens(self):
186188
def test_decrypt_data_key_unsuccessful_clienterror(self):
187189
self.mock_client.decrypt.side_effect = ClientError({"Error": {}}, "This is an error!")
188190
test = KMSMasterKey(config=self.mock_kms_mkc_3)
189-
with six.assertRaisesRegex(self, DecryptKeyError, "Master Key .* unable to decrypt data key"):
191+
with pytest.raises(DecryptKeyError) as excinfo:
190192
test._decrypt_data_key(encrypted_data_key=self.mock_encrypted_data_key, algorithm=sentinel.algorithm)
193+
excinfo.match("Master Key .* unable to decrypt data key")
191194

192195
def test_decrypt_data_key_unsuccessful_keyerror(self):
193196
self.mock_client.decrypt.side_effect = KeyError
194197
test = KMSMasterKey(config=self.mock_kms_mkc_3)
195-
with six.assertRaisesRegex(self, DecryptKeyError, "Master Key .* unable to decrypt data key"):
198+
with pytest.raises(DecryptKeyError) as excinfo:
196199
test._decrypt_data_key(encrypted_data_key=self.mock_encrypted_data_key, algorithm=sentinel.algorithm)
200+
excinfo.match("Master Key .* unable to decrypt data key")

0 commit comments

Comments
 (0)