예제 #1
0
    def _get_profile(self, profile_name):
        if profile_name not in self.b_conf.config['profiles']:
            raise utils.ProfileNotFound(self.b_conf.config_file, profile_name)

        profile = self.b_conf.config['profiles'][profile_name]
        logger.debug("read in profile '%s': %s", profile_name, profile)
        return profile
예제 #2
0
 def test_main_profile_not_found(self):
     # Test that bandit exits when a test profile is not found
     temp_directory = self.useFixture(fixtures.TempDir()).path
     os.chdir(temp_directory)
     with open('bandit.yaml', 'wt') as fd:
         fd.write(bandit_config_content)
     with patch('bandit.core.manager.BanditManager.__init__'
                ) as mock_bandit_mgr:
         mock_bandit_mgr.side_effect = utils.ProfileNotFound('', '')
         # assert a SystemExit with code 2
         self.assertRaisesRegex(SystemExit, '2', bandit.main)
예제 #3
0
파일: main.py 프로젝트: laisun/bandit
def _get_profile(config, profile_name, config_path):
    profile = {}
    if profile_name:
        profiles = config.get_option('profiles') or {}
        profile = profiles.get(profile_name)
        if profile is None:
            raise utils.ProfileNotFound(config_path, profile_name)
        logger.debug("read in legacy profile '%s': %s", profile_name, profile)
    else:
        profile['include'] = set(config.get_option('tests') or [])
        profile['exclude'] = set(config.get_option('skips') or [])
    return profile
예제 #4
0
def _get_profile(config, profile_name, config_path):
    profile = {}
    if profile_name:
        profiles = config.get_option("profiles") or {}
        profile = profiles.get(profile_name)
        if profile is None:
            raise utils.ProfileNotFound(config_path, profile_name)
        LOG.debug("read in legacy profile '%s': %s", profile_name, profile)
    else:
        profile["include"] = set(config.get_option("tests") or [])
        profile["exclude"] = set(config.get_option("skips") or [])
    return profile
예제 #5
0
    def __init__(self,
                 config,
                 agg_type,
                 debug=False,
                 verbose=False,
                 profile_name=None,
                 ignore_nosec=False):
        '''Get logger, config, AST handler, and result store ready

        :param config: config options object
        :type config: bandit.core.BanditConfig
        :param agg_type: aggregation type
        :param debug: Whether to show debug messsages or not
        :param verbose: Whether to show verbose output
        :param profile_name: Optional name of profile to use (from cmd line)
        :param ignore_nosec: Whether to ignore #nosec or not
        :return:
        '''
        self.debug = debug
        self.verbose = verbose
        self.ignore_nosec = ignore_nosec
        self.b_conf = config
        self.files_list = []
        self.excluded_files = []
        self.b_ma = b_meta_ast.BanditMetaAst()
        self.skipped = []
        self.results = []
        self.baseline = []
        self.agg_type = agg_type
        self.metrics = metrics.Metrics()

        # if the profile name was specified, try to find it in the config
        if profile_name:
            if profile_name in self.b_conf.config['profiles']:
                profile = self.b_conf.config['profiles'][profile_name]
                logger.debug("read in profile '%s': %s", profile_name, profile)
            else:
                raise utils.ProfileNotFound(self.b_conf.config_file,
                                            profile_name)
        else:
            profile = None

        self.b_ts = b_test_set.BanditTestSet(config=self.b_conf,
                                             profile=profile)

        # set the increment of after how many files to show progress
        self.progress = b_constants.progress_increment
        self.scores = []