Skip to content

Commit cf26ca3

Browse files
fix
1 parent ebcb759 commit cf26ca3

File tree

3 files changed

+53
-35
lines changed

3 files changed

+53
-35
lines changed

src/aws_encryption_sdk/materials_managers/mpl/cmm.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
33
The aws-cryptographic-materials-library MUST be installed to use this module.
44
"""
5+
from typing import List
56
# pylint should pass even if the MPL isn't installed
67
# Also thinks these imports aren't used if it can't import them
78
# noqa pylint: disable=import-error,unused-import
@@ -19,7 +20,6 @@
1920
ICryptographicMaterialsManager as MPL_ICryptographicMaterialsManager,
2021
)
2122
# noqa pylint: enable=import-error,unused-import
22-
from typing import List
2323

2424
from aws_encryption_sdk.exceptions import AWSEncryptionSDKClientError
2525
from aws_encryption_sdk.identifiers import CommitmentPolicy

test/mpl/unit/test_material_managers_mpl_cmm.py

Lines changed: 43 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -76,16 +76,17 @@ def test_GIVEN_invalid_mpl_cmm_WHEN_create_CryptoMaterialsManagerFromMPL_THEN_ra
7676

7777

7878
@patch.object(mock_mpl_cmm, "get_encryption_materials")
79-
@patch("aws_encryption_sdk.materials_managers.mpl.cmm.CryptoMaterialsManagerFromMPL._native_to_mpl_get_encryption_materials")
79+
@patch("aws_encryption_sdk.materials_managers.mpl.cmm.CryptoMaterialsManagerFromMPL"
80+
"._native_to_mpl_get_encryption_materials")
8081
def test_GIVEN_valid_request_WHEN_get_encryption_materials_THEN_return_EncryptionMaterialsFromMPL(
8182
mock_native_to_mpl_get_encryption_materials,
8283
mock_get_encryption_materials,
8384
):
84-
85+
8586
# Given: _native_to_mpl_get_encryption_materials creates a MPL_GetEncryptionMaterialsInput
8687
mock_get_encryption_materials_input = MagicMock(__class__=MPL_GetEncryptionMaterialsInput)
8788
mock_native_to_mpl_get_encryption_materials.return_value = mock_get_encryption_materials_input
88-
89+
8990
# Given: mpl_cmm.get_encryption_materials returns mock MPL encryption materials
9091
mock_get_encryption_materials_output = MagicMock(__class__=MPL_GetEncryptionMaterialsOutput)
9192
mock_get_encryption_materials_output.encryption_materials = mock_mpl_encryption_materials
@@ -104,29 +105,34 @@ def test_GIVEN_valid_request_WHEN_get_encryption_materials_THEN_return_Encryptio
104105
mock_mpl_cmm.get_encryption_materials.assert_called_once_with(mock_get_encryption_materials_input)
105106

106107

107-
@patch("aws_encryption_sdk.materials_managers.mpl.cmm.CryptoMaterialsManagerFromMPL._native_to_mpl_commmitment_policy")
108+
@patch("aws_encryption_sdk.materials_managers.mpl.cmm.CryptoMaterialsManagerFromMPL"
109+
"._native_to_mpl_commmitment_policy")
108110
def test_GIVEN_mpl_cmm_raises_MPLException_WHEN_get_encryption_materials_THEN_raise_ESDKException(
109111
_
110112
):
111113
# Then: Raises AWSEncryptionSDKClientError
112114
with pytest.raises(AWSEncryptionSDKClientError):
113115
# Given: mpl_cmm.get_encryption_materials raises MPL exception
114116
with patch.object(mock_mpl_cmm, "get_encryption_materials",
115-
side_effect=AwsCryptographicMaterialProvidersException("any")):
117+
side_effect=AwsCryptographicMaterialProvidersException("any")):
116118
# When: get_encryption_materials
117119
cmm = CryptoMaterialsManagerFromMPL(mpl_cmm=mock_mpl_cmm)
118120
cmm.get_encryption_materials(mock_encryption_materials_request)
119121

120-
@patch("aws_encryption_sdk.materials_managers.mpl.cmm.CryptoMaterialsManagerFromMPL._native_to_mpl_commmitment_policy")
121-
def test_GIVEN_valid_mpl_commitment_policy_WHEN_native_to_mpl_get_encryption_materials_THEN_returns_MPL_GetEncryptionMaterialsInput(
122+
123+
@patch("aws_encryption_sdk.materials_managers.mpl.cmm.CryptoMaterialsManagerFromMPL"
124+
"._native_to_mpl_commmitment_policy")
125+
def test_GIVEN_valid_mpl_commitment_policy_WHEN_native_to_mpl_get_encryption_materials_THEN_returns_MPL_GetEncryptionMaterialsInput( # noqa: E501
122126
mock_mpl_commitment_policy
123127
):
124128
# Given: commitment policy is some MPL ESDK commitment policy
125129
mock_commitment_policy = MagicMock(__class__=MPL_CommitmentPolicyESDK)
126130
mock_mpl_commitment_policy.return_value = mock_commitment_policy
127131

128132
# When: _native_to_mpl_get_encryption_materials
129-
output = CryptoMaterialsManagerFromMPL._native_to_mpl_get_encryption_materials(mock_encryption_materials_request)
133+
output = CryptoMaterialsManagerFromMPL._native_to_mpl_get_encryption_materials(
134+
mock_encryption_materials_request
135+
)
130136

131137
# Then: returned MPL_GetEncryptionMaterialsInput is correct
132138
assert isinstance(output, MPL_GetEncryptionMaterialsInput)
@@ -135,7 +141,7 @@ def test_GIVEN_valid_mpl_commitment_policy_WHEN_native_to_mpl_get_encryption_mat
135141
assert output.max_plaintext_length == mock_encryption_materials_request.plaintext_length
136142

137143

138-
def test_GIVEN_CommitmentPolicy_FORBID_ENCRYPT_ALLOW_DECRYPT_WHEN_native_to_mpl_commmitment_policy_THEN_returns_MPL_CommitmentPolicyESDK_FORBID_ENCRYPT_ALLOW_DECRYPT():
144+
def test_GIVEN_CommitmentPolicy_FORBID_ENCRYPT_ALLOW_DECRYPT_WHEN_native_to_mpl_commmitment_policy_THEN_returns_MPL_CommitmentPolicyESDK_FORBID_ENCRYPT_ALLOW_DECRYPT(): # noqa: E501
139145
# Given: native FORBID_ENCRYPT_ALLOW_DECRYPT
140146
native_commitment_policy = CommitmentPolicy.FORBID_ENCRYPT_ALLOW_DECRYPT
141147

@@ -146,7 +152,8 @@ def test_GIVEN_CommitmentPolicy_FORBID_ENCRYPT_ALLOW_DECRYPT_WHEN_native_to_mpl_
146152
assert isinstance(output, MPL_CommitmentPolicyESDK)
147153
assert output.value == "FORBID_ENCRYPT_ALLOW_DECRYPT"
148154

149-
def test_GIVEN_CommitmentPolicy_REQUIRE_ENCRYPT_ALLOW_DECRYPT_WHEN_native_to_mpl_commmitment_policy_THEN_returns_MPL_CommitmentPolicyESDK_REQUIRE_ENCRYPT_ALLOW_DECRYPT():
155+
156+
def test_GIVEN_CommitmentPolicy_REQUIRE_ENCRYPT_ALLOW_DECRYPT_WHEN_native_to_mpl_commmitment_policy_THEN_returns_MPL_CommitmentPolicyESDK_REQUIRE_ENCRYPT_ALLOW_DECRYPT(): # noqa: E501
150157
# Given: native REQUIRE_ENCRYPT_ALLOW_DECRYPT
151158
native_commitment_policy = CommitmentPolicy.REQUIRE_ENCRYPT_ALLOW_DECRYPT
152159

@@ -157,7 +164,8 @@ def test_GIVEN_CommitmentPolicy_REQUIRE_ENCRYPT_ALLOW_DECRYPT_WHEN_native_to_mpl
157164
assert isinstance(output, MPL_CommitmentPolicyESDK)
158165
assert output.value == "REQUIRE_ENCRYPT_ALLOW_DECRYPT"
159166

160-
def test_GIVEN_CommitmentPolicy_REQUIRE_ENCRYPT_REQUIRE_DECRYPT_WHEN_native_to_mpl_commmitment_policy_THEN_returns_MPL_CommitmentPolicyESDK_REQUIRE_ENCRYPT_REQUIRE_DECRYPT():
167+
168+
def test_GIVEN_CommitmentPolicy_REQUIRE_ENCRYPT_REQUIRE_DECRYPT_WHEN_native_to_mpl_commmitment_policy_THEN_returns_MPL_CommitmentPolicyESDK_REQUIRE_ENCRYPT_REQUIRE_DECRYPT(): # noqa: E501
161169
# Given: native REQUIRE_ENCRYPT_REQUIRE_DECRYPT
162170
native_commitment_policy = CommitmentPolicy.REQUIRE_ENCRYPT_REQUIRE_DECRYPT
163171

@@ -168,6 +176,7 @@ def test_GIVEN_CommitmentPolicy_REQUIRE_ENCRYPT_REQUIRE_DECRYPT_WHEN_native_to_m
168176
assert isinstance(output, MPL_CommitmentPolicyESDK)
169177
assert output.value == "REQUIRE_ENCRYPT_REQUIRE_DECRYPT"
170178

179+
171180
def test_GIVEN_CommitmentPolicy_unrecognized_WHEN_native_to_mpl_commmitment_policy_THEN_raise_ValueError():
172181
# Given: invalid native commitment policy
173182
native_commitment_policy = "not a commitment policy"
@@ -177,13 +186,14 @@ def test_GIVEN_CommitmentPolicy_unrecognized_WHEN_native_to_mpl_commmitment_poli
177186
# When: _native_to_mpl_commmitment_policy
178187
CryptoMaterialsManagerFromMPL._native_to_mpl_commmitment_policy(native_commitment_policy)
179188

189+
180190
@patch.object(mock_mpl_cmm, "decrypt_materials")
181-
@patch("aws_encryption_sdk.materials_managers.mpl.cmm.CryptoMaterialsManagerFromMPL._create_mpl_decrypt_materials_input_from_request")
191+
@patch("aws_encryption_sdk.materials_managers.mpl.cmm.CryptoMaterialsManagerFromMPL"
192+
"._create_mpl_decrypt_materials_input_from_request")
182193
def test_GIVEN_valid_request_WHEN_decrypt_materials_THEN_return_DecryptionMaterialsFromMPL(
183194
mock_native_to_mpl_decrypt_materials,
184195
mock_get_encryption_materials,
185196
):
186-
187197
# Given: mpl_cmm.get_decryption_materials returns mock MPL decryption materials
188198
mock_decrypt_materials_output = MagicMock(__class__=MPL_GetEncryptionMaterialsOutput)
189199
mock_decrypt_materials_output.decryption_materials = mock_mpl_decrypt_materials
@@ -205,20 +215,23 @@ def test_GIVEN_valid_request_WHEN_decrypt_materials_THEN_return_DecryptionMateri
205215
# Verify we actually called `decrypt_materials`
206216
mock_mpl_cmm.decrypt_materials.assert_called_once_with(mock_decrypt_materials_input)
207217

208-
@patch("aws_encryption_sdk.materials_managers.mpl.cmm.CryptoMaterialsManagerFromMPL._create_mpl_decrypt_materials_input_from_request")
218+
219+
@patch("aws_encryption_sdk.materials_managers.mpl.cmm.CryptoMaterialsManagerFromMPL"
220+
"._create_mpl_decrypt_materials_input_from_request")
209221
def test_GIVEN_decrypt_materials_raises_MPL_Exception_WHEN_call_decrypt_materials_THEN_raise_ESDK_Exception(
210222
_
211223
):
212224
# Then: Raises AWSEncryptionSDKClientError
213225
with pytest.raises(AWSEncryptionSDKClientError):
214226
# Given: mpl_cmm.decrypt_materials raises MPL exception
215227
with patch.object(mock_mpl_cmm, "decrypt_materials",
216-
side_effect=AwsCryptographicMaterialProvidersException("any")):
228+
side_effect=AwsCryptographicMaterialProvidersException("any")):
217229
# When: decrypt_materials
218230
cmm = CryptoMaterialsManagerFromMPL(mpl_cmm=mock_mpl_cmm)
219231
cmm.decrypt_materials(mock_decryption_materials_request)
220232

221-
def test_GIVEN_valid_native_algorithm_id_WHEN_native_algorithm_id_to_mpl_algorithm_id_THEN_returns_valid_MPL_AlgorithmSuiteIdESDK():
233+
234+
def test_GIVEN_valid_native_algorithm_id_WHEN_native_algorithm_id_to_mpl_algorithm_id_THEN_returns_valid_MPL_AlgorithmSuiteIdESDK(): # noqa: E501
222235
# Given: any native algorithm ID
223236
some_native_algorithm_id = 0x1234 # Not a real algorithm ID, but fits the format
224237

@@ -231,9 +244,12 @@ def test_GIVEN_valid_native_algorithm_id_WHEN_native_algorithm_id_to_mpl_algorit
231244
assert isinstance(mpl_output, MPL_AlgorithmSuiteIdESDK)
232245
assert mpl_output.value == "0x1234"
233246

234-
@patch("aws_encryption_sdk.materials_managers.mpl.cmm.CryptoMaterialsManagerFromMPL._native_algorithm_id_to_mpl_algorithm_id")
235-
@patch("aws_encryption_sdk.materials_managers.mpl.cmm.CryptoMaterialsManagerFromMPL._native_to_mpl_commmitment_policy")
236-
def test_GIVEN_valid_request_WHEN_create_mpl_decrypt_materials_input_from_request_THEN_returns_MPL_MPL_DecryptMaterialsInput(
247+
248+
@patch("aws_encryption_sdk.materials_managers.mpl.cmm.CryptoMaterialsManagerFromMPL"
249+
"._native_algorithm_id_to_mpl_algorithm_id")
250+
@patch("aws_encryption_sdk.materials_managers.mpl.cmm.CryptoMaterialsManagerFromMPL"
251+
"._native_to_mpl_commmitment_policy")
252+
def test_GIVEN_valid_request_WHEN_create_mpl_decrypt_materials_input_from_request_THEN_returns_MPL_MPL_DecryptMaterialsInput( # noqa: E501
237253
mock_mpl_commitment_policy,
238254
mock_mpl_algorithm_id,
239255
):
@@ -245,17 +261,19 @@ def test_GIVEN_valid_request_WHEN_create_mpl_decrypt_materials_input_from_reques
245261
mock_commitment_policy = MagicMock(__class__=MPL_CommitmentPolicyESDK)
246262
mock_mpl_commitment_policy.return_value = mock_commitment_policy
247263

248-
no_mock_edks = [ mock_edk ]
249-
one_mock_edk = [ mock_edk ]
250-
two_mock_edks = [ mock_edk, mock_edk ]
264+
no_mock_edks = [mock_edk]
265+
one_mock_edk = [mock_edk]
266+
two_mock_edks = [mock_edk, mock_edk]
251267

252268
# Given: ESK lists of various lengths
253-
for mock_edks in [ no_mock_edks, one_mock_edk, two_mock_edks ]:
269+
for mock_edks in [no_mock_edks, one_mock_edk, two_mock_edks]:
254270

255271
mock_decryption_materials_request.encrypted_data_keys = mock_edks
256272

257273
# When: _create_mpl_decrypt_materials_input_from_request
258-
output = CryptoMaterialsManagerFromMPL._create_mpl_decrypt_materials_input_from_request(mock_decryption_materials_request)
274+
output = CryptoMaterialsManagerFromMPL._create_mpl_decrypt_materials_input_from_request(
275+
mock_decryption_materials_request
276+
)
259277

260278
# Then:
261279
# Verify general correctness of output structure
@@ -273,4 +291,4 @@ def test_GIVEN_valid_request_WHEN_create_mpl_decrypt_materials_input_from_reques
273291
input_edk = mock_edks[i]
274292
assert output_edk.key_provider_id == input_edk.key_provider.provider_id
275293
assert output_edk.key_provider_info == input_edk.key_provider.key_info
276-
assert output_edk.ciphertext == input_edk.encrypted_data_key
294+
assert output_edk.ciphertext == input_edk.encrypted_data_key

test/mpl/unit/test_material_managers_mpl_materials.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@
2222
EncryptionMaterials as MPL_EncryptionMaterials,
2323
)
2424
from mock import MagicMock, patch
25-
from typing import Dict, List, Set
25+
from typing import Dict
2626

2727
import aws_encryption_sdk.materials_managers.mpl.materials
28-
from aws_encryption_sdk.identifiers import Algorithm, AlgorithmSuite
28+
from aws_encryption_sdk.identifiers import AlgorithmSuite
2929
from aws_encryption_sdk.materials_managers import DecryptionMaterialsRequest, EncryptionMaterialsRequest
3030
from aws_encryption_sdk.materials_managers.mpl.materials import DecryptionMaterialsFromMPL, EncryptionMaterialsFromMPL
3131

@@ -48,11 +48,11 @@
4848
mock_edk.ciphertext = mock_mpl_ciphertext
4949

5050

51-
def test_GIVEN_valid_mpl_materials_WHEN_create_EncryptionMaterialsFromMPL_THEN_return_new_CryptoMaterialsManagerFromMPL():
51+
def test_GIVEN_mpl_materials_WHEN_create_EncryptionMaterialsFromMPL_THEN_return_new_CryptoMaterialsManagerFromMPL():
5252
# Given: valid mpl_materials
5353
# When: create EncryptionMaterialsFromMPL
5454
mpl_encryption_materials = EncryptionMaterialsFromMPL(mpl_materials=mock_mpl_encryption_materials)
55-
55+
5656
# Then: EncryptionMaterialsFromMPL is valid
5757
assert mpl_encryption_materials.mpl_materials == mock_mpl_encryption_materials
5858

@@ -93,7 +93,7 @@ def test_GIVEN_valid_mpl_algorithm_id_WHEN_EncryptionMaterials_get_algorithm_THE
9393
# When: Get algorithm
9494
mpl_encryption_materials = EncryptionMaterialsFromMPL(mpl_materials=mock_mpl_encryption_materials)
9595
output = mpl_encryption_materials.algorithm
96-
96+
9797
# Then: output is valid
9898
assert output == mock_algorithm() # property calls automatically, we need to call the mock
9999

@@ -112,12 +112,12 @@ def test_GIVEN_valid_encryption_context_WHEN_EncryptionMaterials_get_encryption_
112112

113113

114114
def test_GIVEN_valid_edks_WHEN_EncryptionMaterials_get_edks_THEN_returns_edks():
115-
115+
116116
# Given: lists of mocked EDKs of various lengths
117117
no_mock_edks = []
118-
one_mock_edk = [ mock_edk ]
119-
two_mocked_edks = [ mock_edk, mock_edk ]
120-
for mock_edks in [ no_mock_edks, one_mock_edk, two_mocked_edks ]:
118+
one_mock_edk = [mock_edk]
119+
two_mocked_edks = [mock_edk, mock_edk]
120+
for mock_edks in [no_mock_edks, one_mock_edk, two_mocked_edks]:
121121
mock_mpl_encryption_materials.encrypted_data_keys = mock_edks
122122

123123
# When: get EDKs

0 commit comments

Comments
 (0)