Loading tools/post_process_props.py +2 −0 Original line number Diff line number Diff line Loading @@ -88,6 +88,8 @@ def override_optional_props(prop_list, allow_dup=False): if len(overriding_props) > 1: # duplicated props are allowed when the all have the same value if all(overriding_props[0].value == p.value for p in overriding_props): for p in optional_props: p.delete("overridden by %s" % str(overriding_props[0])) continue # or if dup is explicitly allowed for compat reason if allow_dup: Loading tools/test_post_process_props.py +6 −0 Original line number Diff line number Diff line Loading @@ -221,11 +221,17 @@ class PropListTestcase(unittest.TestCase): stderr_redirect = io.StringIO() with contextlib.redirect_stderr(stderr_redirect): props = PropList("hello") optional_prop = props.get_props("foo")[2] # the last foo?=false one # we have duplicated foo=true and foo=true, but that's allowed # since they have the same value self.assertTrue(override_optional_props(props)) # foo?=false should be commented out self.assertEqual("# Removed by post_process_props.py because " + "overridden by foo=true\n#foo?=false", str(optional_prop)) def test_allowDuplicates(self): content = """ # comment Loading Loading
tools/post_process_props.py +2 −0 Original line number Diff line number Diff line Loading @@ -88,6 +88,8 @@ def override_optional_props(prop_list, allow_dup=False): if len(overriding_props) > 1: # duplicated props are allowed when the all have the same value if all(overriding_props[0].value == p.value for p in overriding_props): for p in optional_props: p.delete("overridden by %s" % str(overriding_props[0])) continue # or if dup is explicitly allowed for compat reason if allow_dup: Loading
tools/test_post_process_props.py +6 −0 Original line number Diff line number Diff line Loading @@ -221,11 +221,17 @@ class PropListTestcase(unittest.TestCase): stderr_redirect = io.StringIO() with contextlib.redirect_stderr(stderr_redirect): props = PropList("hello") optional_prop = props.get_props("foo")[2] # the last foo?=false one # we have duplicated foo=true and foo=true, but that's allowed # since they have the same value self.assertTrue(override_optional_props(props)) # foo?=false should be commented out self.assertEqual("# Removed by post_process_props.py because " + "overridden by foo=true\n#foo?=false", str(optional_prop)) def test_allowDuplicates(self): content = """ # comment Loading