Skip to content

Commit eb5bfb2

Browse files
TristonianJonescopybara-github
authored andcommitted
Update CEL Env tests for Python to cover more extensions
PiperOrigin-RevId: 953442759
1 parent 3e369fe commit eb5bfb2

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

cel_expr_python/cel_env_test.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -490,6 +490,34 @@ def test_config_extensions(self):
490490
res = env.compile("hello('World')").eval()
491491
self.assertEqual(res.value(), "Hello, World!")
492492

493+
def test_standard_extensions_via_config(self):
494+
config: cel.EnvConfig = cel.NewEnvConfigFromYaml("""
495+
extensions:
496+
- name: lists
497+
- name: sets
498+
- name: two-var-comprehensions
499+
- name: optional
500+
- name: regex
501+
""")
502+
env: cel.Env = cel.NewEnv(config=config)
503+
504+
# Test lists extension (e.g., reverse)
505+
res = env.compile("[1, 2].reverse()").eval()
506+
self.assertEqual(res.plain_value(), [2, 1])
507+
508+
# Test sets extension (e.g., intersects)
509+
res = env.compile("sets.intersects([1, 2], [2, 3])").eval()
510+
self.assertEqual(res.value(), True)
511+
512+
# Test two-var-comprehensions (e.g., all)
513+
res = env.compile("[1, 2].all(i, v, v > 0)").eval()
514+
self.assertEqual(res.value(), True)
515+
516+
# Test regex extension (e.g., replace)
517+
expr = r"regex.replace('123-456', r'(\d+)-(\d+)', r'\2-\1')"
518+
res = env.compile(expr).eval()
519+
self.assertEqual(res.value(), "456-123")
520+
493521
def test_config_extension_override_same_version(self):
494522
config: cel.EnvConfig = cel.NewEnvConfigFromYaml("""
495523
extensions:

0 commit comments

Comments
 (0)