3
3
from unittest .mock import DEFAULT , Mock , create_autospec , patch
4
4
5
5
import pytest
6
- from aws_cloudformation_rpdk_python_lib .log_delivery import ProviderLogHandler
6
+ from aws_cloudformation_rpdk_python_lib .log_delivery import (
7
+ ProviderFilter ,
8
+ ProviderLogHandler ,
9
+ )
7
10
8
11
9
12
@pytest .fixture
@@ -28,16 +31,36 @@ def mock_provider_handler():
28
31
return plh
29
32
30
33
34
+ @pytest .mark .parametrize (
35
+ "logger" , [("aa_bb_cc" , False ), ("aws_cloudformation_rpdk_python_lib" , True )]
36
+ )
37
+ def test_provider_filter (logger ):
38
+ log_name , expected = logger
39
+ ProviderFilter .PROVIDER = "aa_bb_cc"
40
+ log_filter = ProviderFilter ()
41
+ record = logging .LogRecord (
42
+ name = log_name ,
43
+ level = 123 ,
44
+ pathname = "abc" ,
45
+ lineno = 123 ,
46
+ msg = "test" ,
47
+ args = [],
48
+ exc_info = False ,
49
+ )
50
+ assert log_filter .filter (record ) == expected
51
+
52
+
31
53
def test_setup_with_provider_creds (mock_logger ):
32
54
payload = {
55
+ "resourceType" : "Foo::Bar::Baz" ,
33
56
"requestData" : {
34
57
"providerCredentials" : {
35
58
"accessKeyId" : "AKI" ,
36
59
"secretAccessKey" : "SAK" ,
37
60
"sessionToken" : "ST" ,
38
61
},
39
62
"providerLogGroupName" : "test_group" ,
40
- }
63
+ },
41
64
}
42
65
with patch (
43
66
"aws_cloudformation_rpdk_python_lib.log_delivery.logging.getLogger" ,
@@ -67,20 +90,20 @@ def test_setup_without_provider_creds(mock_logger):
67
90
".__init__" ,
68
91
autospec = True ,
69
92
) as mock___init__ :
70
- ProviderLogHandler .setup ({})
71
- ProviderLogHandler .setup ({"requestData" : {}})
72
- ProviderLogHandler .setup ({"requestData" : {"providerLogGroupName" : "test" }})
73
- ProviderLogHandler .setup (
74
- {
75
- "requestData" : {
76
- "providerCredentials" : {
77
- "accessKeyId" : "AKI" ,
78
- "secretAccessKey" : "SAK" ,
79
- "sessionToken" : "ST" ,
80
- }
81
- }
93
+ payload = {"resourceType" : "Foo::Bar::Baz" }
94
+ ProviderLogHandler .setup (payload )
95
+ payload ["requestData" ] = {}
96
+ ProviderLogHandler .setup (payload )
97
+ payload ["requestData" ] = {"providerLogGroupName" : "test" }
98
+ ProviderLogHandler .setup (payload )
99
+ payload ["requestData" ] = {
100
+ "providerCredentials" : {
101
+ "accessKeyId" : "AKI" ,
102
+ "secretAccessKey" : "SAK" ,
103
+ "sessionToken" : "ST" ,
82
104
}
83
- )
105
+ }
106
+ ProviderLogHandler .setup (payload )
84
107
mock___init__ .assert_not_called ()
85
108
patched_logger .return_value .addHandler .assert_not_called ()
86
109
0 commit comments