|
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 | """Unit test suite for aws_encryption_sdk.key_providers.kms.KMSMasterKey"""
|
14 |
| -import unittest |
15 |
| - |
16 | 14 | import botocore.client
|
17 | 15 | import pytest
|
18 |
| -import six |
| 16 | + |
19 | 17 | from botocore.exceptions import ClientError
|
20 | 18 | from mock import MagicMock, patch, sentinel
|
21 | 19 |
|
|
30 | 28 | pytestmark = [pytest.mark.unit, pytest.mark.local]
|
31 | 29 |
|
32 | 30 |
|
33 |
| -class TestKMSMasterKey(unittest.TestCase): |
34 |
| - def setUp(self): |
| 31 | +class TestKMSMasterKey(object): |
| 32 | + @pytest.fixture(autouse=True) |
| 33 | + def apply_fixture(self): |
35 | 34 | self.mock_client = MagicMock()
|
36 | 35 | self.mock_client.__class__ = botocore.client.BaseClient
|
37 | 36 | self.mock_client.generate_data_key.return_value = {
|
@@ -111,14 +110,16 @@ def test_generate_data_key_with_grant_tokens(self):
|
111 | 110 | def test_generate_data_key_unsuccessful_clienterror(self):
|
112 | 111 | self.mock_client.generate_data_key.side_effect = ClientError({"Error": {}}, "This is an error!")
|
113 | 112 | test = KMSMasterKey(config=self.mock_kms_mkc_3)
|
114 |
| - with six.assertRaisesRegex(self, GenerateKeyError, "Master Key .* unable to generate data key"): |
| 113 | + with pytest.raises(GenerateKeyError) as excinfo: |
115 | 114 | test._generate_data_key(self.mock_algorithm)
|
| 115 | + excinfo.match("Master Key .* unable to generate data key") |
116 | 116 |
|
117 | 117 | def test_generate_data_key_unsuccessful_keyerror(self):
|
118 | 118 | self.mock_client.generate_data_key.side_effect = KeyError
|
119 | 119 | test = KMSMasterKey(config=self.mock_kms_mkc_3)
|
120 |
| - with six.assertRaisesRegex(self, GenerateKeyError, "Master Key .* unable to generate data key"): |
| 120 | + with pytest.raises(GenerateKeyError) as excinfo: |
121 | 121 | test._generate_data_key(self.mock_algorithm)
|
| 122 | + excinfo.match("Master Key .* unable to generate data key") |
122 | 123 |
|
123 | 124 | def test_encrypt_data_key(self):
|
124 | 125 | test = KMSMasterKey(config=self.mock_kms_mkc_3)
|
@@ -146,14 +147,16 @@ def test_encrypt_data_key_with_grant_tokens(self):
|
146 | 147 | def test_encrypt_data_key_unsuccessful_clienterror(self):
|
147 | 148 | self.mock_client.encrypt.side_effect = ClientError({"Error": {}}, "This is an error!")
|
148 | 149 | test = KMSMasterKey(config=self.mock_kms_mkc_3)
|
149 |
| - with six.assertRaisesRegex(self, EncryptKeyError, "Master Key .* unable to encrypt data key"): |
| 150 | + with pytest.raises(EncryptKeyError) as excinfo: |
150 | 151 | test._encrypt_data_key(self.mock_data_key, self.mock_algorithm)
|
| 152 | + excinfo.match("Master Key .* unable to encrypt data key") |
151 | 153 |
|
152 | 154 | def test_encrypt_data_key_unsuccessful_keyerror(self):
|
153 | 155 | self.mock_client.encrypt.side_effect = KeyError
|
154 | 156 | test = KMSMasterKey(config=self.mock_kms_mkc_3)
|
155 |
| - with six.assertRaisesRegex(self, EncryptKeyError, "Master Key .* unable to encrypt data key"): |
| 157 | + with pytest.raises(EncryptKeyError) as excinfo: |
156 | 158 | test._encrypt_data_key(self.mock_data_key, self.mock_algorithm)
|
| 159 | + excinfo.match("Master Key .* unable to encrypt data key") |
157 | 160 |
|
158 | 161 | def test_decrypt_data_key(self):
|
159 | 162 | test = KMSMasterKey(config=self.mock_kms_mkc_1)
|
@@ -186,11 +189,13 @@ def test_decrypt_data_key_with_grant_tokens(self):
|
186 | 189 | def test_decrypt_data_key_unsuccessful_clienterror(self):
|
187 | 190 | self.mock_client.decrypt.side_effect = ClientError({"Error": {}}, "This is an error!")
|
188 | 191 | test = KMSMasterKey(config=self.mock_kms_mkc_3)
|
189 |
| - with six.assertRaisesRegex(self, DecryptKeyError, "Master Key .* unable to decrypt data key"): |
| 192 | + with pytest.raises(DecryptKeyError) as excinfo: |
190 | 193 | test._decrypt_data_key(encrypted_data_key=self.mock_encrypted_data_key, algorithm=sentinel.algorithm)
|
| 194 | + excinfo.match("Master Key .* unable to decrypt data key") |
191 | 195 |
|
192 | 196 | def test_decrypt_data_key_unsuccessful_keyerror(self):
|
193 | 197 | self.mock_client.decrypt.side_effect = KeyError
|
194 | 198 | test = KMSMasterKey(config=self.mock_kms_mkc_3)
|
195 |
| - with six.assertRaisesRegex(self, DecryptKeyError, "Master Key .* unable to decrypt data key"): |
| 199 | + with pytest.raises(DecryptKeyError) as excinfo: |
196 | 200 | test._decrypt_data_key(encrypted_data_key=self.mock_encrypted_data_key, algorithm=sentinel.algorithm)
|
| 201 | + excinfo.match("Master Key .* unable to decrypt data key") |
0 commit comments