From 85f297931337a4c17b388d2c5857f7169f288b18 Mon Sep 17 00:00:00 2001 From: Ross Scroggs Date: Fri, 2 Dec 2022 18:51:39 -0800 Subject: [PATCH] Fix Chrome schema enum processing (#1582) Prefix should not include anything after ENUM_ ``` name: RollbackToTargetVersionEnum value: name: ROLLBACK_TO_TARGET_VERSION_ENUM_ROLLBACK_DISABLED number: 1 name: ROLLBACK_TO_TARGET_VERSION_ENUM_ROLLBACK_AND_RESTORE_IF_POSSIBLE number: 3 ``` --- src/gam/gapi/chromepolicy.py | 2 +- src/gam/utils.py | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/gam/gapi/chromepolicy.py b/src/gam/gapi/chromepolicy.py index 3bc1c78d..80837004 100644 --- a/src/gam/gapi/chromepolicy.py +++ b/src/gam/gapi/chromepolicy.py @@ -167,7 +167,7 @@ def build_schemas(svc=None, sfilter=None): for an_enum in schema['definition']['enumType']: if an_enum['name'] == type_name: setting_dict['enums'] = [enum['name'] for enum in an_enum['value']] - setting_dict['enum_prefix'] = utils.commonprefix(setting_dict['enums']) + setting_dict['enum_prefix'] = utils.commonprefix(setting_dict['enums'], True) prefix_len = len(setting_dict['enum_prefix']) setting_dict['enums'] = [enum[prefix_len:] for enum \ in setting_dict['enums'] \ diff --git a/src/gam/utils.py b/src/gam/utils.py index d080258b..024d5b27 100644 --- a/src/gam/utils.py +++ b/src/gam/utils.py @@ -96,9 +96,13 @@ class _DeHTMLParser(HTMLParser): re.sub(r'\n +', '\n', ''.join(self.__text))).strip() -def commonprefix(m): +def commonprefix(m, checkEnum=False): '''Given a list of strings m, return string which is prefix common to all''' s1 = min(m) + if checkEnum: + loc = s1.find('ENUM_') + if loc > 0: + return s1[:loc+5] s2 = max(m) for i, c in enumerate(s1): if c != s2[i]: