Beispiel #1
0
def test_logical_connector_list(mock_type_value_rewrite):
    assert C7N_Rewriter.logical_connector(sentinel.resource, [{
        "type": "value"
    }]) == str(sentinel.rewritten)
    assert mock_type_value_rewrite.mock_calls == [
        call(sentinel.resource, {'type': 'value'})
    ]
Beispiel #2
0
def test_logical_connector_not_1(mock_type_value_rewrite):
    not_1 = {"not": [{"type": "value"}]}
    assert (C7N_Rewriter.logical_connector(
        sentinel.resource, not_1) == f"! ({str(sentinel.rewritten)})")
    assert mock_type_value_rewrite.mock_calls == [
        call(sentinel.resource, {'type': 'value'})
    ]
Beispiel #3
0
def test_logical_connector_or(mock_type_value_rewrite):
    # Note the singleton or; this is common.
    assert C7N_Rewriter.logical_connector(sentinel.resource,
                                          {"or": [{
                                              "type": "value"
                                          }]}) == str(sentinel.rewritten)
    assert mock_type_value_rewrite.mock_calls == [
        call(sentinel.resource, {'type': 'value'})
    ]
Beispiel #4
0
def test_logical_connector_not_2(mock_type_value_rewrite):
    not_2 = {"not": [{"type": "value", "value": 1}, {"type": "value", "value": 2}]}
    expected_2 = f"! ({str(sentinel.rewritten)} && {str(sentinel.rewritten)})"
    assert (
        C7N_Rewriter.logical_connector(sentinel.resource, not_2) == expected_2
    )
    assert mock_type_value_rewrite.mock_calls == [
        call(sentinel.resource, {'type': 'value', 'value': 1}),
        call(sentinel.resource, {'type': 'value', 'value': 2})
    ]
Beispiel #5
0
def test_logical_connector_errors(mock_type_value_rewrite):
    with raises(ValueError):
        C7N_Rewriter.logical_connector(sentinel.resource,
                                       {"type": "-not-defined-"})
    with raises(ValueError):
        C7N_Rewriter.logical_connector(sentinel.resource, "nope")
Beispiel #6
0
 def __init__(self) -> None:
     self.policy = yaml.load(self.policy_doc, Loader=yaml.SafeLoader)
     self.filter_expr = C7N_Rewriter.logical_connector(self.policy["filters"])