def DEFINE_enum(name, default, enum_values, help=None, flag_values=_flagvalues.FLAGS, module_name=None, **args): """Registers a flag whose value can be any string from enum_values. Instead of a string enum, prefer `DEFINE_enum_class`, which allows defining enums from an `enum.Enum` class. Args: name: str, the flag name. default: str|None, the default value of the flag. enum_values: [str], a non-empty list of strings with the possible values for the flag. help: str, the help message. flag_values: FlagValues, the FlagValues instance with which the flag will be registered. This should almost never need to be overridden. module_name: str, the name of the Python module declaring this flag. If not provided, it will be computed using the stack trace of this call. **args: dict, the extra keyword args that are passed to Flag __init__. """ DEFINE_flag(_flag.EnumFlag(name, default, help, enum_values, **args), flag_values, module_name)
def test_empty_values(self): with self.assertRaises(ValueError): _flag.EnumFlag('fruit', None, 'help', [])
def test_help_text(self, helptext_input, helptext_output): f = _flag.EnumFlag('fruit', 'apple', helptext_input, ['apple', 'orange']) self.assertEqual(helptext_output, f.help)