@@ -50,6 +50,13 @@ def test_object_multiple_effect(self):
50
50
"cloudformation:*" ,
51
51
],
52
52
"Resource" : "*" ,
53
+ "Principal" : {
54
+ "AWS" : [
55
+ "arn:aws:iam::123456789012:root" ,
56
+ "999999999999" ,
57
+ ],
58
+ "CanonicalUser" : "79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be" ,
59
+ },
53
60
}
54
61
],
55
62
}
@@ -107,14 +114,18 @@ def test_object_statements(self):
107
114
validator = validator , policy = policy , schema = {}, policy_type = None
108
115
)
109
116
)
110
- self .assertEqual (len (errs ), 2 , errs )
111
- self .assertEqual (errs [0 ].message , "'NotAllow' is not one of ['Allow', 'Deny']" )
112
- self .assertListEqual (list (errs [0 ].path ), ["Statement" , 0 , "Effect" ])
117
+ self .assertEqual (len (errs ), 3 , errs )
113
118
self .assertEqual (
114
- errs [1 ].message ,
119
+ errs [0 ].message ,
120
+ "Only one of ['Principal', 'NotPrincipal'] is a required property" ,
121
+ )
122
+ self .assertEqual (errs [1 ].message , "'NotAllow' is not one of ['Allow', 'Deny']" )
123
+ self .assertListEqual (list (errs [1 ].path ), ["Statement" , 0 , "Effect" ])
124
+ self .assertEqual (
125
+ errs [2 ].message ,
115
126
"{'NotValid': ['arn:${AWS::Partition}:iam::123456789012:role/object-role']} is not of type 'string'" ,
116
127
)
117
- self .assertListEqual (list (errs [1 ].path ), ["Statement" , 0 , "Resource" , 1 ])
128
+ self .assertListEqual (list (errs [2 ].path ), ["Statement" , 0 , "Resource" , 1 ])
118
129
119
130
def test_string_statements (self ):
120
131
"""Test Positive"""
@@ -146,13 +157,17 @@ def test_string_statements(self):
146
157
validator = validator , policy = policy , schema = {}, policy_type = None
147
158
)
148
159
)
149
- self .assertEqual (len (errs ), 2 , errs )
160
+ self .assertEqual (len (errs ), 3 , errs )
150
161
self .assertEqual (
151
162
errs [0 ].message ,
163
+ "Only one of ['Principal', 'NotPrincipal'] is a required property" ,
164
+ )
165
+ self .assertEqual (
166
+ errs [1 ].message ,
152
167
"{'Fn::Sub': ['arn:${AWS::Partition}:iam::123456789012/role/string-role']} is not of type 'string'" ,
153
168
)
154
- self .assertListEqual (list (errs [0 ].path ), ["Statement" , 0 , "Resource" , 1 ])
169
+ self .assertListEqual (list (errs [1 ].path ), ["Statement" , 0 , "Resource" , 1 ])
155
170
self .assertEqual (
156
- errs [1 ].message , "'2012-10-18' is not one of ['2008-10-17', '2012-10-17']"
171
+ errs [2 ].message , "'2012-10-18' is not one of ['2008-10-17', '2012-10-17']"
157
172
)
158
- self .assertListEqual (list (errs [1 ].path ), ["Version" ])
173
+ self .assertListEqual (list (errs [2 ].path ), ["Version" ])
0 commit comments