1
|
|
|
# -*- coding: utf-8 -*- |
2
|
|
|
import unittest |
3
|
|
|
from mock import MagicMock |
4
|
|
|
from awslambdahelper import AWSConfigRule |
5
|
|
|
|
6
|
|
|
|
7
|
|
|
class ConfigRuleTests(unittest.TestCase): |
8
|
|
|
def test_classinstantiation(self): |
9
|
|
|
AWSConfigRule( |
10
|
|
|
applicable_resources=["AWS::EC2::INSTANCE"] |
11
|
|
|
) |
12
|
|
|
|
13
|
|
|
def test_configcalltype(self): |
14
|
|
|
rule = AWSConfigRule( |
15
|
|
|
applicable_resources=["AWS::EC2::INSTANCE"] |
16
|
|
|
) |
17
|
|
|
rule.call_type = AWSConfigRule.CALL_TYPE_CONFIGURATION_CHANGE |
18
|
|
|
|
19
|
|
|
self.assertTrue(rule.is_config_change_call) |
20
|
|
|
|
21
|
|
|
def test_schedulecalltype(self): |
22
|
|
|
rule = AWSConfigRule( |
23
|
|
|
applicable_resources=["AWS::EC2::INSTANCE"] |
24
|
|
|
) |
25
|
|
|
rule.call_type = AWSConfigRule.CALL_TYPE_SCHEDULED |
26
|
|
|
|
27
|
|
|
self.assertTrue(rule.is_scheduled_call) |
28
|
|
|
|
29
|
|
|
def test_unimplemented_callbacks(self): |
30
|
|
|
rule = AWSConfigRule( |
31
|
|
|
applicable_resources=["AWS::EC2::INSTANCE"] |
32
|
|
|
) |
33
|
|
|
|
34
|
|
|
with self.assertRaises(NotImplementedError): |
35
|
|
|
rule.find_violation_config_change(config=None, rule_parameters=None) |
36
|
|
|
|
37
|
|
|
with self.assertRaises(NotImplementedError): |
38
|
|
|
rule.find_violation_scheduled(rule_parameters=None, accountid=None) |
39
|
|
|
|
40
|
|
|
def test_statichandler(self): |
41
|
|
|
class MockHandler(AWSConfigRule): |
42
|
|
|
APPLICABLE_RESOURCES = ['a', 'b'] |
43
|
|
|
|
44
|
|
|
MockHandler.lambda_handler = MagicMock() |
45
|
|
|
|
46
|
|
|
MockHandler.handler({'event': None}, {'context': None}) |
47
|
|
|
|
48
|
|
|
MockHandler.lambda_handler.assert_called_once_with( |
49
|
|
|
{'event': None}, {'context': None} |
50
|
|
|
) |
51
|
|
|
|
52
|
|
|
def test__aws_call(self): |
53
|
|
|
callable_payload = lambda: 'TestResponse' |
54
|
|
|
|
55
|
|
|
rule = AWSConfigRule() |
56
|
|
|
self.assertEqual( |
57
|
|
|
rule._aws_call(callable_payload), |
58
|
|
|
'TestResponse' |
59
|
|
|
) |