aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYilei Yang <yileiyang@google.com>2022-11-07 08:02:49 -0800
committerCopybara-Service <copybara-worker@google.com>2022-11-07 08:03:21 -0800
commitbe755cb76df0aa7f11bb34c3712d9913a89c45fd (patch)
treef44bf4f6fbd5f63790eab578aecdf30da0a8ad03
parentc75edbb71e6942d72d41a57d9cd10c9628d4cb0a (diff)
downloadabsl-py-be755cb76df0aa7f11bb34c3712d9913a89c45fd.tar.gz
Fix DEFINE_multi_enum_class's additional kwargs (e.g. short_name).
They were passed to the wrong function. PiperOrigin-RevId: 486662821 Change-Id: I9015cad60073165eeca379bf2419612c33bcae0e
-rw-r--r--CHANGELOG.md5
-rw-r--r--absl/flags/_defines.py10
-rw-r--r--absl/flags/tests/flags_test.py11
3 files changed, 24 insertions, 2 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ae82a55..5203fdd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com).
Nothing notable unreleased.
+### Fixed
+
+* (flags) Additional kwargs (e.g. `short_name=`) to `DEFINE_multi_enum_class`
+ are now correctly passed to the underlying `Flag` object.
+
## 1.3.0 (2022-10-11)
### Added
diff --git a/absl/flags/_defines.py b/absl/flags/_defines.py
index dce53ea..61354e9 100644
--- a/absl/flags/_defines.py
+++ b/absl/flags/_defines.py
@@ -859,11 +859,17 @@ def DEFINE_multi_enum_class( # pylint: disable=invalid-name,redefined-builtin
"""
return DEFINE_flag(
_flag.MultiEnumClassFlag(
- name, default, help, enum_class, case_sensitive=case_sensitive),
+ name,
+ default,
+ help,
+ enum_class,
+ case_sensitive=case_sensitive,
+ **args,
+ ),
flag_values,
module_name,
required=required,
- **args)
+ )
def DEFINE_alias( # pylint: disable=invalid-name
diff --git a/absl/flags/tests/flags_test.py b/absl/flags/tests/flags_test.py
index 77ed307..7cacbc8 100644
--- a/absl/flags/tests/flags_test.py
+++ b/absl/flags/tests/flags_test.py
@@ -1591,6 +1591,17 @@ class MultiEnumFlagsTest(absltest.TestCase):
class MultiEnumClassFlagsTest(absltest.TestCase):
+ def test_short_name(self):
+ fv = flags.FlagValues()
+ flags.DEFINE_multi_enum_class(
+ 'fruit',
+ None,
+ Fruit,
+ 'Enum option that can occur multiple times',
+ flag_values=fv,
+ short_name='me')
+ self.assertEqual(fv['fruit'].short_name, 'me')
+
def test_define_results_in_registered_flag_with_none(self):
fv = flags.FlagValues()
enum_defaults = None