def test_trim_runtime_filters(self): filter_data = [{ 'and': [{ 'not': [{ 'type': 'event', 'key': 'xyz', 'value': 'bar' }] }, { 'key': 'value' }] }] p = self.load_policy({ 'name': 'xyz', 'resource': 'aws.ec2', 'mode': { 'type': 'config-rule', 'role': 'xyz' }, 'filters': deepcopy(filter_data) }) m = p.resource_manager trim_runtime(m.filters) self.assertEqual([ n is not None and n.type or n for n in m.iter_filters(block_end=True) ], ['and', 'value', None]) # we modify filters array in place on resource manager # but we don't touch the underlying policy data structure self.assertEqual(m.data['filters'], filter_data)
def _trim_runtime_filters(self): from c7n.filters.core import trim_runtime trim_runtime(self.conditions.filters) trim_runtime(self.resource_manager.filters)