def main(argv=None): if len(sys.argv) == 1: # pragma: no cover sys.argv.append('-h') args = parse_args(argv) if args.verbose: # pragma: no cover log.set_debug_level(args.verbose) if args.version: # pragma: no cover print(VERSION) return if args.scan: print( json.dumps( _perform_scan(args), indent=2, sort_keys=True, ), ) elif args.audit: audit.audit_baseline(args.audit[0]) return 0
def test_quit_before_making_decision(self, mock_printer): with self.mock_env(['q']) as m: audit.audit_baseline('will_be_mocked') assert m.call_args[1]['data'] == self.baseline assert mock_printer.message == ('Quitting...\n' 'Saving progress...\n')
def run_logic(self, inputs, modified_baseline=None, input_baseline=None): with self.mock_env( inputs, baseline=input_baseline, ) as m: audit.audit_baseline('will_be_mocked') assert m.call_args[1]['data'] == modified_baseline
def run_logic(self, inputs, modified_baseline=None, input_baseline=None): with self.mock_env(inputs, baseline=input_baseline) as m: audit.audit_baseline('will_be_mocked') if not modified_baseline: assert m.call_args[0][1] == self.baseline else: assert m.call_args[0][1] == modified_baseline
def test_nothing_to_audit(self, mock_printer): modified_baseline = deepcopy(self.baseline) modified_baseline['results']['filenameA'][0]['is_secret'] = True modified_baseline['results']['filenameA'][1]['is_secret'] = False modified_baseline['results']['filenameB'][0]['is_secret'] = False with self.mock_env(baseline=modified_baseline): audit.audit_baseline('will_be_mocked') assert mock_printer.message == 'Nothing to audit!\n'
def test_quit_before_making_decision(self, mock_printer): with self.mock_env(['q']) as m: audit.audit_baseline('will_be_mocked') assert m.call_args[0][1] == self.baseline assert mock_printer.message == ( 'Quitting...\n' 'Saving progress...\n' )
def main(argv=None): if len(sys.argv) == 1: # pragma: no cover sys.argv.append('-h') args = parse_args(argv) if args.verbose: # pragma: no cover log.set_debug_level(args.verbose) if args.action == 'scan': # Plugins are *always* rescanned with fresh settings, because # we want to get the latest updates. plugins = initialize.from_parser_builder(args.plugins) if args.string: line = args.string if isinstance(args.string, bool): line = sys.stdin.read().splitlines()[0] _scan_string(line, plugins) else: baseline_dict = _perform_scan( args, plugins, ) if args.import_filename: write_baseline_to_file( filename=args.import_filename[0], data=baseline_dict, ) else: print(baseline.format_baseline_for_output(baseline_dict, ), ) elif args.action == 'audit': if not args.diff: audit.audit_baseline(args.filename[0]) return 0 if len(args.filename) != 2: print( 'Must specify two files to compare!', file=sys.stderr, ) return 1 try: audit.compare_baselines(args.filename[0], args.filename[1]) except audit.RedundantComparisonError: print( 'No difference, because it\'s the same file!', file=sys.stderr, ) return 0
def main(argv=None): if len(sys.argv) == 1: # pragma: no cover sys.argv.append('-h') args = parse_args(argv) if args.verbose: # pragma: no cover log.set_debug_level(args.verbose) if args.version: # pragma: no cover print(VERSION) return if args.scan: print(json.dumps( _perform_scan(args), indent=2, sort_keys=True, ), ) elif args.audit: audit.audit_baseline(args.audit[0]) return 0
def main(argv=None): if len(sys.argv) == 1: # pragma: no cover sys.argv.append('-h') args = parse_args(argv) if args.verbose: # pragma: no cover log.set_debug_level(args.verbose) if args.action == 'scan': # Plugins are *always* rescanned with fresh settings, because # we want to get the latest updates. plugins = initialize.from_parser_builder(args.plugins) if args.string: line = args.string if isinstance(args.string, bool): line = sys.stdin.read().splitlines()[0] _scan_string(line, plugins) else: output = json.dumps( _perform_scan(args, plugins), indent=2, sort_keys=True, separators=(',', ': '), ) if args.import_filename: _write_to_file(args.import_filename[0], output) else: print(output) elif args.action == 'audit': audit.audit_baseline(args.filename[0]) return 0
def main(argv=None): if len(sys.argv) == 1: # pragma: no cover sys.argv.append('-h') args = parse_args(argv) if args.verbose: # pragma: no cover log.set_debug_level(args.verbose) if args.action == 'scan': output = json.dumps( _perform_scan(args), indent=2, sort_keys=True, ) if args.import_filename: _write_to_file(args.import_filename[0], output) else: print(output) elif args.action == 'audit': audit.audit_baseline(args.filename[0]) return 0
def main(argv=sys.argv[1:]): if len(sys.argv) == 1: # pragma: no cover sys.argv.append('--help') args = parse_args(argv) if args.verbose: # pragma: no cover log.set_debug_level(args.verbose) if args.action == 'scan': automaton = None word_list_hash = None if args.word_list_file: automaton, word_list_hash = build_automaton(args.word_list_file) # Plugins are *always* rescanned with fresh settings, because # we want to get the latest updates. plugins = initialize.from_parser_builder( plugins_dict=args.plugins, custom_plugin_paths=args.custom_plugin_paths, exclude_lines_regex=args.exclude_lines, automaton=automaton, should_verify_secrets=not args.no_verify, ) if args.string: line = args.string if isinstance(args.string, bool): line = sys.stdin.read().splitlines()[0] _scan_string(line, plugins) else: baseline_dict = _perform_scan( args, plugins, automaton, word_list_hash, ) if args.import_filename: write_baseline_to_file( filename=args.import_filename[0], data=baseline_dict, ) else: print(baseline.format_baseline_for_output(baseline_dict, ), ) elif args.action == 'audit': if not args.diff and not args.display_results: audit.audit_baseline(args.filename[0]) return 0 if args.display_results: audit.print_audit_results(args.filename[0]) return 0 if len(args.filename) != 2: print( 'Must specify two files to compare!', file=sys.stderr, ) return 1 try: audit.compare_baselines(args.filename[0], args.filename[1]) except audit.RedundantComparisonError: print( 'No difference, because it\'s the same file!', file=sys.stderr, ) return 0
def test_no_baseline(self, mock_printer): with self.mock_env(baseline='') as m: audit.audit_baseline('will_be_mocked') assert not m.called assert mock_printer.message == ''