4
4
from uuid import uuid4
5
5
6
6
import pytest
7
- from boto3 .session import Session
8
- from cloudformation_cli_python_lib .boto3_proxy import SessionProxy
9
7
from cloudformation_cli_python_lib .log_delivery import (
10
8
HookProviderLogHandler ,
11
9
ProviderFilter ,
18
16
RequestData ,
19
17
)
20
18
19
+ import botocore .errorfactory
20
+ import botocore .session
21
+
22
+ logs_model = botocore .session .get_session ().get_service_model ("logs" )
23
+ factory = botocore .errorfactory .ClientExceptionsFactory ()
24
+ logs_exceptions = factory .create_client_exceptions (logs_model )
25
+
21
26
22
27
@pytest .fixture
23
28
def mock_logger ():
@@ -100,15 +105,11 @@ def mock_handler_set_formatter():
100
105
101
106
102
107
@pytest .fixture
103
- def mock_provider_handler ():
108
+ def mock_provider_handler (mock_session ):
104
109
plh = ProviderLogHandler (
105
110
group = "test-group" ,
106
111
stream = "test-stream" ,
107
- session = SessionProxy (
108
- Session (
109
- aws_access_key_id = "" , aws_secret_access_key = "" , aws_session_token = ""
110
- )
111
- ),
112
+ session = mock_session ,
112
113
)
113
114
# not mocking the whole client because that replaces generated exception classes to
114
115
# be replaced with mocks
@@ -118,15 +119,11 @@ def mock_provider_handler():
118
119
119
120
120
121
@pytest .fixture
121
- def mock_hook_provider_handler ():
122
+ def mock_hook_provider_handler (mock_session ):
122
123
plh = HookProviderLogHandler (
123
124
group = "test-hook-group" ,
124
125
stream = "test-hook-stream" ,
125
- session = SessionProxy (
126
- Session (
127
- aws_access_key_id = "" , aws_secret_access_key = "" , aws_session_token = ""
128
- )
129
- ),
126
+ session = mock_session ,
130
127
)
131
128
# not mocking the whole client because that replaces generated exception classes to
132
129
# be replaced with mocks
@@ -286,12 +283,12 @@ def test__put_log_event_success(mock_provider_handler, sequence_token):
286
283
287
284
288
285
def test__put_log_event_invalid_token (mock_provider_handler ):
289
- exc = mock_provider_handler .client .exceptions
286
+ mock_provider_handler .client .exceptions = logs_exceptions
290
287
mock_put = mock_provider_handler .client .put_log_events
291
288
mock_put .return_value = {"nextSequenceToken" : "some-other-seq" }
292
289
mock_put .side_effect = [
293
- exc .InvalidSequenceTokenException ({}, operation_name = "Test" ),
294
- exc .DataAlreadyAcceptedException ({}, operation_name = "Test" ),
290
+ logs_exceptions .InvalidSequenceTokenException ({}, operation_name = "Test" ),
291
+ logs_exceptions .DataAlreadyAcceptedException ({}, operation_name = "Test" ),
295
292
DEFAULT ,
296
293
]
297
294
mock_provider_handler ._put_log_event (
@@ -309,8 +306,8 @@ def test_emit_existing_cwl_group_stream(mock_provider_handler):
309
306
310
307
311
308
def test_emit_no_group_stream (mock_provider_handler ):
312
- exc = mock_provider_handler .client .exceptions . ResourceNotFoundException
313
- group_exc = exc (
309
+ mock_provider_handler .client .exceptions = logs_exceptions
310
+ group_exc = logs_exceptions . ResourceNotFoundException (
314
311
{"Error" : {"Message" : "log group does not exist" }},
315
312
operation_name = "PutLogRecords" ,
316
313
)
@@ -326,7 +323,7 @@ def test_emit_no_group_stream(mock_provider_handler):
326
323
mock_provider_handler ._create_log_stream .assert_called_once ()
327
324
328
325
# create_group should not be called again if the group already exists
329
- stream_exc = exc (
326
+ stream_exc = logs_exceptions . ResourceNotFoundException (
330
327
{"Error" : {"Message" : "log stream does not exist" }},
331
328
operation_name = "PutLogRecords" ,
332
329
)
@@ -493,12 +490,12 @@ def test__hook_put_log_event_success(mock_hook_provider_handler, sequence_token)
493
490
494
491
495
492
def test__hook_put_log_event_invalid_token (mock_hook_provider_handler ):
496
- exc = mock_hook_provider_handler .client .exceptions
493
+ mock_hook_provider_handler .client .exceptions = logs_exceptions
497
494
mock_put = mock_hook_provider_handler .client .put_log_events
498
495
mock_put .return_value = {"nextSequenceToken" : "some-other-seq" }
499
496
mock_put .side_effect = [
500
- exc .InvalidSequenceTokenException ({}, operation_name = "Test" ),
501
- exc .DataAlreadyAcceptedException ({}, operation_name = "Test" ),
497
+ logs_exceptions .InvalidSequenceTokenException ({}, operation_name = "Test" ),
498
+ logs_exceptions .DataAlreadyAcceptedException ({}, operation_name = "Test" ),
502
499
DEFAULT ,
503
500
]
504
501
mock_hook_provider_handler ._put_log_event (
@@ -516,8 +513,8 @@ def test_hook_emit_existing_cwl_group_stream(mock_hook_provider_handler):
516
513
517
514
518
515
def test_hook_emit_no_group_stream (mock_hook_provider_handler ):
519
- exc = mock_hook_provider_handler .client .exceptions . ResourceNotFoundException
520
- group_exc = exc (
516
+ mock_hook_provider_handler .client .exceptions = logs_exceptions
517
+ group_exc = logs_exceptions . ResourceNotFoundException (
521
518
{"Error" : {"Message" : "log group does not exist" }},
522
519
operation_name = "PutLogRecords" ,
523
520
)
@@ -533,7 +530,7 @@ def test_hook_emit_no_group_stream(mock_hook_provider_handler):
533
530
mock_hook_provider_handler ._create_log_stream .assert_called_once ()
534
531
535
532
# create_group should not be called again if the group already exists
536
- stream_exc = exc (
533
+ stream_exc = logs_exceptions . ResourceNotFoundException (
537
534
{"Error" : {"Message" : "log stream does not exist" }},
538
535
operation_name = "PutLogRecords" ,
539
536
)
0 commit comments