def test_parse_and_parser_merge_settings_p04_conf_cmdline_parsed(): parser = setup_parser() write_conf(conf, {'no_console': True, 'url': 'https://conf_set'}) cmd_line = ['--conf', conf] args_default = {} args_parser_default = kvargs.parser_defaults(parser, set_to_none=True) print('args_parser_default:', args_parser_default) vargs = kvargs.parse_and_parser_merge_settings( parser, args_parser_default=args_parser_default, args_default=args_default, cmd_line=cmd_line) assert vargs == { 'conf': conf, 'conf_files_loaded': ['kvargs1.json'], 'disp_vargs': False, 'display': False, 'token': None, 'uri': 'https://conf_set', 'vargs_updated_by': { 'conf': ['cmdline'], 'disp_vargs': ['args_parser_default'], 'display': ['args_parser_default', 'conf:kvargs1.json'], 'uri': ['args_parser_default', 'conf:kvargs1.json'] }, } print('*' * 80) cmd_line = ['--conf', conf, '--console'] vargs = kvargs.parse_and_parser_merge_settings( parser, args_parser_default=args_parser_default, args_default=args_default, cmd_line=cmd_line) assert dict(vargs) == { 'conf': conf, 'conf_files_loaded': ['kvargs1.json'], 'disp_vargs': False, 'display': True, 'token': None, 'uri': 'https://conf_set', 'vargs_updated_by': { 'conf': ['cmdline'], 'disp_vargs': ['args_parser_default'], 'display': ['args_parser_default', 'conf:kvargs1.json', 'cmdline'], 'uri': ['args_parser_default', 'conf:kvargs1.json'] }, } os.remove(conf)
def test_parse_and_parser_merge_settings_p07_blank_cmdline_parsed_arg_default_new_value( ): parser = setup_parser() cmd_line = [] args_default = {'new_value': 'new_value'} args_parser_default = kvargs.parser_defaults(parser, set_to_none=True) vargs = kvargs.parse_and_parser_merge_settings( parser, args_parser_default=args_parser_default, args_default=args_default, cmd_line=cmd_line) assert vargs == { 'conf': None, 'disp_vargs': False, 'display': False, 'token': None, 'uri': 'http', 'new_value': 'new_value', 'vargs_updated_by': { 'disp_vargs': ['args_parser_default'], 'display': ['args_parser_default'], 'new_value': ['args_default'], 'uri': ['args_parser_default'] }, }
def test_parse_and_parser_merge_settings_p09_store_true_conf(): cmd_line = [] test_args_conf = {'token': True} parser = argparse.ArgumentParser() parser.add_argument("--token", action="store_true") assert parser.get_default("token") is False args_parser_default = kvargs.parser_defaults(parser, set_to_none=True) args_default = {} vargs = kvargs.parse_and_parser_merge_settings( parser, args_default=args_default, args_parser_default=args_parser_default, cmd_line=cmd_line, test_args_conf=test_args_conf) assert dict(vargs) == { 'conf_files_loaded': ['test_args_conf'], 'token': True, 'vargs_updated_by': { 'token': ['args_parser_default', 'conf:test_args_conf'] }, } assert parser.get_default("token") is None
def test_parse_and_parser_merge_settings_p06_blank_cmdline_parsed_arg_default_str_blank_cmd( ): parser = setup_parser() cmd_line = [] args_default = {'token': 'default_token', 'url': ''} args_parser_default = kvargs.parser_defaults(parser, set_to_none=True) vargs = kvargs.parse_and_parser_merge_settings( parser, args_parser_default=args_parser_default, args_default=args_default, cmd_line=cmd_line) # url is added because we are not making cmdline expansions assert vargs == { 'conf': None, 'disp_vargs': False, 'display': False, 'token': 'default_token', 'uri': 'http', 'url': '', 'vargs_updated_by': { 'disp_vargs': ['args_parser_default'], 'display': ['args_parser_default'], 'token': ['args_default'], 'uri': ['args_parser_default'], 'url': ['args_default'] }, }
def test_parse_and_parser_merge_settings_p02_str_set_cmd(): cmd_line = ['--token', 'sue'] parser = argparse.ArgumentParser() parser.add_argument("--token", default="ken") assert parser.get_default("token") == "ken" args_default = kvargs.parser_extract_default_and_set_to_none(parser) assert args_default == {'token': 'ken'} vargs = kvargs.parse_and_parser_merge_settings(parser, args_default=args_default, cmd_line=cmd_line) assert vargs == { 'token': 'sue', 'vargs_updated_by': { 'token': ['args_default', 'cmdline'] }, } assert parser.get_default("token") is None
def test_parse_and_parser_merge_settings_p04_store_true_set_cmd(): cmd_line = ['--token'] parser = argparse.ArgumentParser() parser.add_argument("--token", action="store_true") assert parser.get_default("token") is False args_default = kvargs.parser_extract_default_and_set_to_none(parser) assert args_default == {'token': False} vargs = kvargs.parse_and_parser_merge_settings(parser, args_default=args_default, cmd_line=cmd_line) assert vargs == { 'token': True, 'vargs_updated_by': { 'token': ['args_default', 'cmdline'] }, } assert parser.get_default("token") is None
def test_parse_and_parser_merge_settings_p07_text_simple_defaults(): cmd_line = [] parser = argparse.ArgumentParser() parser.add_argument("--token") assert parser.get_default("token") is None args_default = kvargs.parser_extract_default_and_set_to_none( parser, {'token': 'set_default'}) assert args_default == {'token': 'set_default'} vargs = kvargs.parse_and_parser_merge_settings(parser, args_default=args_default, cmd_line=cmd_line) assert vargs == { 'token': 'set_default', 'vargs_updated_by': { 'token': ['args_default'] } } assert parser.get_default("token") is None
def test_parse_and_parser_merge_settings_p03_store_true_simple(): cmd_line = [] parser = argparse.ArgumentParser() parser.add_argument("--token", action="store_true") assert parser.get_default("token") is False args_default = kvargs.parser_extract_default_and_set_to_none(parser) assert args_default == { 'token': False, } vargs = kvargs.parse_and_parser_merge_settings(parser, args_default=args_default, cmd_line=cmd_line) assert dict(vargs) == { 'token': False, 'vargs_updated_by': { 'token': ['args_default'] } } assert parser.get_default("token") is None
def test_parse_and_parser_merge_settings_p10_store_true_empty_conf_default(): cmd_line = [] test_args_conf = {} args_default = {'token': True} parser = argparse.ArgumentParser() parser.add_argument("--token", action="store_true") assert parser.get_default("token") is False args_parser_default = kvargs.parser_defaults(parser, set_to_none=True) vargs = kvargs.parse_and_parser_merge_settings( parser, args_default=args_default, args_parser_default=args_parser_default, cmd_line=cmd_line, test_args_conf=test_args_conf) args_default['vargs_updated_by'] = {'token': ['args_default']} args_default['conf_files_loaded'] = ['test_args_conf'] assert dict(vargs) == args_default assert parser.get_default("token") is None
def test_parse_and_parser_merge_settings_p05_two_flags(): # cmd_line = ['--token'] cmd_line = [] parser = argparse.ArgumentParser() parser.add_argument("--token", action="store_true") parser.add_argument("--no_token", action="store_false", dest="token") assert parser.get_default("token") is False args_default = kvargs.parser_extract_default_and_set_to_none( parser, {'token': True}) assert args_default == {'token': True} vargs = kvargs.parse_and_parser_merge_settings(parser, args_default=args_default, cmd_line=cmd_line) assert vargs == { 'token': True, 'vargs_updated_by': { 'token': ['args_default'] } } assert parser.get_default("token") is None
def test_parse_and_parser_merge_settings_p03_cmdline_v3_parsed(): parser = setup_parser() cmd_line = ['--no_console'] args_default = {} args_parser_default = kvargs.parser_defaults(parser, set_to_none=True) vargs = kvargs.parse_and_parser_merge_settings( parser, args_parser_default=args_parser_default, args_default=args_default, cmd_line=cmd_line) assert vargs == { 'conf': None, 'disp_vargs': False, 'display': False, 'token': None, 'uri': 'http', 'vargs_updated_by': { 'disp_vargs': ['args_parser_default'], 'display': ['args_parser_default', 'cmdline'], 'uri': ['args_parser_default'] }, }
def test_parse_and_parser_merge_settings_p08_text_simple_defaults_conf(): cmd_line = [] test_args_conf = {'token': 'set_by_conf'} parser = argparse.ArgumentParser() parser.add_argument("--token") assert parser.get_default("token") is None # args_default = kvargs.parser_extract_default_and_set_to_none(parser, {'token': 'set_default'}) args_parser_default = kvargs.parser_defaults(parser, set_to_none=True) args_default = {'token': 'set_default'} vargs = kvargs.parse_and_parser_merge_settings( parser, args_parser_default=args_parser_default, args_default=args_default, cmd_line=cmd_line, test_args_conf=test_args_conf) assert dict(vargs) == { 'conf_files_loaded': ['test_args_conf'], 'token': 'set_by_conf', 'vargs_updated_by': { 'token': ['args_default', 'conf:test_args_conf'] }, } assert parser.get_default("token") is None