mirror of
https://github.com/thegeeklab/ansible-later.git
synced 2024-07-01 14:41:01 +02:00
86 lines
2.5 KiB
Python
86 lines
2.5 KiB
Python
# -*- coding:utf-8 -*-
|
|
#
|
|
# Copyright 2014 Hewlett-Packard Development Company, L.P.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
import logging
|
|
|
|
from bandit.core import utils
|
|
|
|
LOG = logging.getLogger(__name__)
|
|
|
|
|
|
def checks(*args):
|
|
'''Decorator function to set checks to be run.'''
|
|
def wrapper(func):
|
|
if not hasattr(func, "_checks"):
|
|
func._checks = []
|
|
func._checks.extend(utils.check_ast_node(a) for a in args)
|
|
|
|
LOG.debug('checks() decorator executed')
|
|
LOG.debug(' func._checks: %s', func._checks)
|
|
return func
|
|
return wrapper
|
|
|
|
|
|
def takes_config(*args):
|
|
'''Test function takes config
|
|
|
|
Use of this delegate before a test function indicates that it should be
|
|
passed data from the config file. Passing a name parameter allows
|
|
aliasing tests and thus sharing config options.
|
|
'''
|
|
name = ""
|
|
|
|
def _takes_config(func):
|
|
if not hasattr(func, "_takes_config"):
|
|
func._takes_config = name
|
|
return func
|
|
|
|
if len(args) == 1 and callable(args[0]):
|
|
name = args[0].__name__
|
|
return _takes_config(args[0])
|
|
else:
|
|
name = args[0]
|
|
return _takes_config
|
|
|
|
|
|
def test_id(id_val):
|
|
'''Test function identifier
|
|
|
|
Use this decorator before a test function indicates its simple ID
|
|
'''
|
|
def _has_id(func):
|
|
if not hasattr(func, "_test_id"):
|
|
func._test_id = id_val
|
|
return func
|
|
return _has_id
|
|
|
|
|
|
def accepts_baseline(*args):
|
|
"""Decorator to indicate formatter accepts baseline results
|
|
|
|
Use of this decorator before a formatter indicates that it is able to deal
|
|
with baseline results. Specifically this means it has a way to display
|
|
candidate results and know when it should do so.
|
|
"""
|
|
def wrapper(func):
|
|
if not hasattr(func, '_accepts_baseline'):
|
|
func._accepts_baseline = True
|
|
|
|
LOG.debug('accepts_baseline() decorator executed on %s', func.__name__)
|
|
|
|
return func
|
|
return wrapper(args[0])
|