def test_bad_message_text_characters(self): rule_set = validation.RuleSet() self.mock(validation, 'DEFAULT_RULE_SET', rule_set) @validation.rule('projects/foo', 'bar.cfg', rule_set=rule_set) def validate(cfg, ctx): # pylint: disable=unused-argument, unused-variable ctx.error('a\x80b') self.mock(auth, 'is_admin', lambda: True) req = { 'config_set': 'projects/foo', 'path': 'bar.cfg', 'content': '', } resp = self.call_api('validate', req).json_body self.assertEqual( resp, { 'messages': [ { 'path': 'bar.cfg', 'severity': 'ERROR', 'text': u'a\ufffdb' }, ], })
def test_metadata(self): rule_set = validation.RuleSet() self.mock(validation, 'DEFAULT_RULE_SET', rule_set) validation.rule('projects/foo', 'bar.cfg', rule_set=rule_set) validation.rule('services/foo', 'foo.cfg', rule_set=rule_set) self.mock(auth, 'is_admin', lambda: True) resp = self.call_api('get_metadata', {}).json_body self.assertEqual( resp, { 'version': '1.0', 'validation': { 'url': 'https://localhost:80/_ah/api/config/v1/validate', 'patterns': [ { 'config_set': 'projects/foo', 'path': 'bar.cfg' }, { 'config_set': 'services/foo', 'path': 'foo.cfg' }, ], }, })
def setUp(self): super(ValidationTestCase, self).setUp() self.rule_set = validation.RuleSet()