| Index: appengine/components/components/config/endpoint_test.py
|
| diff --git a/appengine/components/components/config/endpoint_test.py b/appengine/components/components/config/endpoint_test.py
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..abaf65d86df5b245c1acb28a74f53caa54049834
|
| --- /dev/null
|
| +++ b/appengine/components/components/config/endpoint_test.py
|
| @@ -0,0 +1,72 @@
|
| +#!/usr/bin/env python
|
| +# Copyright 2014 The Swarming Authors. All rights reserved.
|
| +# Use of this source code is governed by the Apache v2.0 license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +import base64
|
| +import datetime
|
| +import logging
|
| +import sys
|
| +import unittest
|
| +
|
| +from test_support import test_env
|
| +test_env.setup_test_env()
|
| +
|
| +from test_support import test_case
|
| +import mock
|
| +
|
| +from components import auth
|
| +from components.config import common
|
| +from components.config import endpoint
|
| +from components.config import test_config_pb2
|
| +from components.config import validation
|
| +from test_support import test_case
|
| +
|
| +
|
| +class EndpointTestCase(test_case.EndpointsTestCase):
|
| + api_service_cls = endpoint.ConfigApi
|
| +
|
| + def test_metadata(self):
|
| + rule_set = validation.RuleSet()
|
| + self.mock(endpoint, 'get_default_rule_set', lambda: 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,
|
| + {
|
| + '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 test_metadata_without_permissions(self):
|
| + with self.call_should_fail(403):
|
| + self.call_api('get_metadata', {})
|
| +
|
| + def test_config_service_is_trusted_requester(self):
|
| + self.mock(auth, 'is_admin', lambda: False)
|
| + config_identity = auth.Identity(
|
| + 'user', 'luci-config@appspot.gserviceaccount.com')
|
| + self.mock(auth, 'get_current_identity', lambda: config_identity)
|
| + self.assertFalse(endpoint.is_trusted_requester())
|
| +
|
| + common.ConfigSettings().modify(service_hostname='luci-config.appspot.com')
|
| + common.ConfigSettings.clear_cache()
|
| + self.assertTrue(endpoint.is_trusted_requester())
|
| +
|
| +
|
| +if __name__ == '__main__':
|
| + if '-v' in sys.argv:
|
| + unittest.TestCase.maxDiff = None
|
| + logging.basicConfig(level=logging.DEBUG)
|
| + else:
|
| + logging.basicConfig(level=logging.FATAL)
|
| + unittest.main()
|
|
|