diff --git a/cel_expr_python/cel_env_test.py b/cel_expr_python/cel_env_test.py index eacfc9f..af1de62 100644 --- a/cel_expr_python/cel_env_test.py +++ b/cel_expr_python/cel_env_test.py @@ -490,6 +490,34 @@ def test_config_extensions(self): res = env.compile("hello('World')").eval() self.assertEqual(res.value(), "Hello, World!") + def test_standard_extensions_via_config(self): + config: cel.EnvConfig = cel.NewEnvConfigFromYaml(""" + extensions: + - name: lists + - name: sets + - name: two-var-comprehensions + - name: optional + - name: regex + """) + env: cel.Env = cel.NewEnv(config=config) + + # Test lists extension (e.g., reverse) + res = env.compile("[1, 2].reverse()").eval() + self.assertEqual(res.plain_value(), [2, 1]) + + # Test sets extension (e.g., intersects) + res = env.compile("sets.intersects([1, 2], [2, 3])").eval() + self.assertEqual(res.value(), True) + + # Test two-var-comprehensions (e.g., all) + res = env.compile("[1, 2].all(i, v, v > 0)").eval() + self.assertEqual(res.value(), True) + + # Test regex extension (e.g., replace) + expr = r"regex.replace('123-456', r'(\d+)-(\d+)', r'\2-\1')" + res = env.compile(expr).eval() + self.assertEqual(res.value(), "456-123") + def test_config_extension_override_same_version(self): config: cel.EnvConfig = cel.NewEnvConfigFromYaml(""" extensions: