Пример #1
0
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
Пример #2
0
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