diff options
author | Abseil Team <absl-team@google.com> | 2021-02-26 12:56:28 -0800 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2021-02-26 12:56:46 -0800 |
commit | 8ae8e19e5da94af8ac44ab73b6132795f69e4a82 (patch) | |
tree | 3dbc091f5b21545b3d9ea68785f59bf744f1a32b /absl | |
parent | 1f6b231eef83712c495971be9c1c5586887bc73e (diff) | |
download | absl-py-8ae8e19e5da94af8ac44ab73b6132795f69e4a82.tar.gz |
Add EnumClassListSerializer to the public namespace
This is to (formally) allow using it in extension libraries.
Also add a test to cover non-comma separators.
PiperOrigin-RevId: 359820150
Change-Id: I3a384083a1634d1429b6a01b10571ebfb7ee9ac1
Diffstat (limited to 'absl')
-rw-r--r-- | absl/CHANGELOG.md | 2 | ||||
-rw-r--r-- | absl/flags/__init__.py | 1 | ||||
-rw-r--r-- | absl/flags/tests/_argument_parser_test.py | 13 |
3 files changed, 14 insertions, 2 deletions
diff --git a/absl/CHANGELOG.md b/absl/CHANGELOG.md index 9ff1924..ad16c4d 100644 --- a/absl/CHANGELOG.md +++ b/absl/CHANGELOG.md @@ -8,7 +8,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com). ### Added -* (flags) Made `EnumClassSerializer` public. +* (flags) Made `EnumClassSerializer` and `EnumClassListSerializer` public. * (flags) Added a `required: Optional[bool] = False` parameter to `DEFINE_*` functions. * (testing) flagsaver overrides can now be specified in terms of FlagHolder. diff --git a/absl/flags/__init__.py b/absl/flags/__init__.py index 3de08bc..99501bb 100644 --- a/absl/flags/__init__.py +++ b/absl/flags/__init__.py @@ -119,6 +119,7 @@ IntegerParser = _argument_parser.IntegerParser BaseListParser = _argument_parser.BaseListParser ListParser = _argument_parser.ListParser ListSerializer = _argument_parser.ListSerializer +EnumClassListSerializer = _argument_parser.EnumClassListSerializer CsvListSerializer = _argument_parser.CsvListSerializer WhitespaceSeparatedListParser = _argument_parser.WhitespaceSeparatedListParser EnumClassSerializer = _argument_parser.EnumClassSerializer diff --git a/absl/flags/tests/_argument_parser_test.py b/absl/flags/tests/_argument_parser_test.py index 4074669..247249c 100644 --- a/absl/flags/tests/_argument_parser_test.py +++ b/absl/flags/tests/_argument_parser_test.py @@ -190,12 +190,23 @@ class EnumClassParserTest(parameterized.TestCase): self.assertEqual(value, parser.parse(expected)) -class SerializerTest(absltest.TestCase): +class SerializerTest(parameterized.TestCase): def test_csv_serializer(self): serializer = _argument_parser.CsvListSerializer('+') self.assertEqual(serializer.serialize(['foo', 'bar']), 'foo+bar') + @parameterized.parameters([ + dict(lowercase=False, expected='APPLE+BANANA'), + dict(lowercase=True, expected='apple+banana'), + ]) + def test_enum_class_list_serializer(self, lowercase, expected): + values = [Fruit.APPLE, Fruit.BANANA] + serializer = _argument_parser.EnumClassListSerializer( + list_sep='+', lowercase=lowercase) + serialized = serializer.serialize(values) + self.assertEqual(expected, serialized) + class HelperFunctionsTest(absltest.TestCase): |