def test_options(): parser_mock = mock.Mock() parser_mock.parse_args = mock.Mock(return_value=(1, 1)) with mock.patch('optparse.OptionParser', return_value=parser_mock, ): options = OptionsParser.parse('description', 'version') assert parser_mock.parse_args.call_count == 1 assert options == 1
def main(): """ Deal with startup config, merge file config and priority command line options. Respect the command line. :return: Provide the proper exit code """ options = OptionsParser.parse(__description__, __version__) if options['log_level'] not in OptionsParser.LOG_LEVELS: print('Not a valid log level') return EXIT_PARAM_ERROR config, results = ConfigParser.parse(options['config_file']) if type(results) is dict: ConfigParser.display_errors(config, results) return EXIT_PARAM_ERROR for key in options: if key != 'config_file': config['frontside'][key] = options[key] # Merge options and config logging.basicConfig( filename=config['frontside']['log_file'], level=OptionsParser.LOG_LEVELS[config['frontside']['log_level']] ) logging.info('Entering frontside') application = Frontside(config) application.start() if GlobalObjects.scanner is not None and GlobalObjects.scanner.get_status(): GlobalObjects.scanner.halt() return EXIT_OK