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
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)
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
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
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 = []