Skip to content

Commit 626eb4e

Browse files
committed
un-mock tests to work correctly with updated prep_data_stream implementation
1 parent 268853a commit 626eb4e

File tree

3 files changed

+22
-19
lines changed

3 files changed

+22
-19
lines changed

test/unit/test_streaming_client_encryption_stream.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import aws_encryption_sdk.exceptions
2222
from aws_encryption_sdk.internal.defaults import LINE_LENGTH
23+
from aws_encryption_sdk.internal.utils.streams import InsistentReaderBytesIO
2324
from aws_encryption_sdk.key_providers.base import MasterKeyProvider
2425
from aws_encryption_sdk.streaming_client import _ClientConfig, _EncryptionStream
2526

@@ -107,17 +108,19 @@ def test_new_with_params(self):
107108
line_length=io.DEFAULT_BUFFER_SIZE,
108109
source_length=mock_int_sentinel,
109110
)
110-
assert mock_stream.config == MockClientConfig(
111-
source=self.mock_source_stream,
112-
key_provider=self.mock_key_provider,
113-
mock_read_bytes=sentinel.read_bytes,
114-
line_length=io.DEFAULT_BUFFER_SIZE,
115-
source_length=mock_int_sentinel,
116-
)
111+
112+
assert mock_stream.config.source == self.mock_source_stream
113+
assert isinstance(mock_stream.config.source, InsistentReaderBytesIO)
114+
assert mock_stream.config.key_provider is self.mock_key_provider
115+
assert mock_stream.config.mock_read_bytes is sentinel.read_bytes
116+
assert mock_stream.config.line_length == io.DEFAULT_BUFFER_SIZE
117+
assert mock_stream.config.source_length is mock_int_sentinel
118+
117119
assert mock_stream.bytes_read == 0
118120
assert mock_stream.output_buffer == b""
119121
assert not mock_stream._message_prepped
120-
assert mock_stream.source_stream is self.mock_source_stream
122+
assert mock_stream.source_stream == self.mock_source_stream
123+
assert isinstance(mock_stream.source_stream, InsistentReaderBytesIO)
121124
assert mock_stream._stream_length is mock_int_sentinel
122125
assert mock_stream.line_length == io.DEFAULT_BUFFER_SIZE
123126

test/unit/test_streaming_client_stream_decryptor.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ def test_prep_non_framed(self):
261261
test_decryptor._prep_non_framed()
262262

263263
self.mock_deserialize_non_framed_values.assert_called_once_with(
264-
stream=self.mock_input_stream, header=self.mock_header, verifier=sentinel.verifier
264+
stream=test_decryptor.source_stream, header=self.mock_header, verifier=sentinel.verifier
265265
)
266266
assert test_decryptor.body_length == len(VALUES["data_128"])
267267
self.mock_get_aad_content_string.assert_called_once_with(

test/unit/test_streaming_client_stream_encryptor.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,6 @@ def setUp(self):
5858

5959
self.mock_master_key = MagicMock(__class__=MasterKey)
6060

61-
self.mock_input_stream = MagicMock(__class__=io.IOBase)
62-
6361
self.mock_frame_length = MagicMock(__class__=int)
6462

6563
self.mock_algorithm = MagicMock(__class__=Algorithm)
@@ -178,7 +176,7 @@ def tearDown(self):
178176

179177
def test_init(self):
180178
test_encryptor = StreamEncryptor(
181-
source=self.mock_input_stream,
179+
source=io.BytesIO(self.plaintext),
182180
key_provider=self.mock_key_provider,
183181
frame_length=self.mock_frame_length,
184182
algorithm=self.mock_algorithm,
@@ -190,7 +188,7 @@ def test_init(self):
190188
def test_init_non_framed_message_too_large(self):
191189
with six.assertRaisesRegex(self, SerializationError, "Source too large for non-framed message"):
192190
StreamEncryptor(
193-
source=self.mock_input_stream,
191+
source=io.BytesIO(self.plaintext),
194192
key_provider=self.mock_key_provider,
195193
frame_length=0,
196194
algorithm=self.mock_algorithm,
@@ -200,7 +198,7 @@ def test_init_non_framed_message_too_large(self):
200198
def test_prep_message_no_master_keys(self):
201199
self.mock_key_provider.master_keys_for_encryption.return_value = sentinel.primary_master_key, set()
202200
test_encryptor = StreamEncryptor(
203-
source=self.mock_input_stream,
201+
source=io.BytesIO(self.plaintext),
204202
key_provider=self.mock_key_provider,
205203
frame_length=self.mock_frame_length,
206204
source_length=5,
@@ -215,7 +213,7 @@ def test_prep_message_primary_master_key_not_in_master_keys(self):
215213
self.mock_master_keys_set,
216214
)
217215
test_encryptor = StreamEncryptor(
218-
source=self.mock_input_stream,
216+
source=io.BytesIO(self.plaintext),
219217
key_provider=self.mock_key_provider,
220218
frame_length=self.mock_frame_length,
221219
source_length=5,
@@ -227,7 +225,7 @@ def test_prep_message_primary_master_key_not_in_master_keys(self):
227225
def test_prep_message_algorithm_change(self):
228226
self.mock_encryption_materials.algorithm = Algorithm.AES_256_GCM_IV12_TAG16
229227
test_encryptor = StreamEncryptor(
230-
source=self.mock_input_stream,
228+
source=io.BytesIO(self.plaintext),
231229
materials_manager=self.mock_materials_manager,
232230
algorithm=Algorithm.AES_128_GCM_IV12_TAG16,
233231
source_length=128,
@@ -255,7 +253,7 @@ def test_prep_message_framed_message(
255253
):
256254
mock_rostream.return_value = sentinel.plaintext_rostream
257255
test_encryptor = StreamEncryptor(
258-
source=self.mock_input_stream,
256+
source=io.BytesIO(self.plaintext),
259257
materials_manager=self.mock_materials_manager,
260258
frame_length=self.mock_frame_length,
261259
source_length=5,
@@ -359,7 +357,7 @@ def test_write_header(self):
359357
@patch("aws_encryption_sdk.streaming_client.non_framed_body_iv")
360358
def test_prep_non_framed(self, mock_non_framed_iv):
361359
self.mock_serialize_non_framed_open.return_value = b"1234567890"
362-
test_encryptor = StreamEncryptor(source=self.mock_input_stream, key_provider=self.mock_key_provider)
360+
test_encryptor = StreamEncryptor(source=io.BytesIO(self.plaintext), key_provider=self.mock_key_provider)
363361
test_encryptor.signer = sentinel.signer
364362
test_encryptor._encryption_materials = self.mock_encryption_materials
365363
test_encryptor._header = MagicMock()
@@ -411,7 +409,7 @@ def test_read_bytes_to_non_framed_body_too_large(self):
411409
test_encryptor._read_bytes_to_non_framed_body(5)
412410

413411
def test_read_bytes_to_non_framed_body_close(self):
414-
test_encryptor = StreamEncryptor(source=self.mock_input_stream, key_provider=self.mock_key_provider)
412+
test_encryptor = StreamEncryptor(source=io.BytesIO(self.plaintext), key_provider=self.mock_key_provider)
415413
test_encryptor.signer = MagicMock()
416414
test_encryptor._encryption_materials = self.mock_encryption_materials
417415
test_encryptor.encryptor = MagicMock()
@@ -420,7 +418,9 @@ def test_read_bytes_to_non_framed_body_close(self):
420418
test_encryptor.encryptor.tag = sentinel.tag
421419
self.mock_serialize_non_framed_close.return_value = b"789"
422420
self.mock_serialize_footer.return_value = b"0-="
421+
423422
test = test_encryptor._read_bytes_to_non_framed_body(len(self.plaintext) + 1)
423+
424424
test_encryptor.signer.update.assert_has_calls(calls=(call(b"123"), call(b"456")), any_order=False)
425425
assert test_encryptor.source_stream.closed
426426
test_encryptor.encryptor.finalize.assert_called_once_with()

0 commit comments

Comments
 (0)