Index: appengine/components/components/config/validation_test.py |
diff --git a/appengine/components/components/config/validation_test.py b/appengine/components/components/config/validation_test.py |
index 73a9e8c045c59ae83ddccb91096e638152237757..9c0c154aadf3a03ab898ce0b38ea2a0ee94bc37b 100755 |
--- a/appengine/components/components/config/validation_test.py |
+++ b/appengine/components/components/config/validation_test.py |
@@ -44,6 +44,25 @@ class ValidationTestCase(test_case.TestCase): |
self.rule_set.validate('projects/foo', 'baz.cfg', 'wrong') |
self.rule_set.validate('projects/baz', 'bar.cfg', 'wrong') |
+ def test_patterns(self): |
+ validation.rule( |
+ 'projects/foo', 'bar.cfg', test_config_pb2.Config, |
+ rule_set=self.rule_set) |
+ validation.rule( |
+ 'services/foo', 'foo.cfg', test_config_pb2.Config, |
+ rule_set=self.rule_set) |
+ validation.rule( |
+ 'services/foo', 'foo.cfg', test_config_pb2.Config, |
+ rule_set=self.rule_set) |
+ self.assertEqual( |
+ self.rule_set.patterns(), |
+ { |
+ validation.ConfigPattern('projects/foo', 'bar.cfg'), |
+ validation.ConfigPattern('services/foo', 'foo.cfg'), |
+ validation.ConfigPattern('services/foo', 'foo.cfg'), |
+ } |
+ ) |
+ |
def test_context_metadata(self): |
ctx = validation.Context() |
@@ -64,8 +83,8 @@ class ValidationTestCase(test_case.TestCase): |
def test_regex_pattern_and_no_dest_type(self): |
rule = validation.rule( |
- config_set=re.compile('^projects/f[^/]+$').match, |
- path=lambda p: p.endswith('.yaml'), |
+ config_set='regex:projects/f[^/]+', |
+ path='regex:.+.yaml', |
rule_set=self.rule_set) |
def validate_yaml(cfg, ctx): |
try: |
@@ -119,6 +138,16 @@ class ValidationTestCase(test_case.TestCase): |
rule.remove() |
self.rule_set.validate('projects/foo', 'bar.cfg', 'invalid config') |
+ def test_compile_pattern(self): |
+ self.assertTrue(validation.compile_pattern('abc')('abc')) |
+ self.assertTrue(validation.compile_pattern('text:abc')('abc')) |
+ self.assertFalse(validation.compile_pattern('text:abc')('abcd')) |
+ |
+ self.assertTrue(validation.compile_pattern('regex:abc')('abc')) |
+ self.assertTrue(validation.compile_pattern('regex:\w+')('abc')) |
+ self.assertTrue(validation.compile_pattern('regex:^(\w+)c$')('abc')) |
+ self.assertFalse(validation.compile_pattern('regex:\d+')('a123b')) |
+ |
if __name__ == '__main__': |
if '-v' in sys.argv: |