Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1870)

Unified Diff: appengine/components/components/config/endpoint_test.py

Issue 1221643020: config services: services.cfg and validation (Closed) Base URL: git@github.com:luci/luci-py.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..e35faf81f87f07790ad6ad331d614f1a53802dd3
--- /dev/null
+++ b/appengine/components/components/config/endpoint_test.py
@@ -0,0 +1,76 @@
+#!/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',
+ trusted_config_account=auth.Identity(
+ 'user', 'luci-config@appspot.gserviceaccount.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()
« no previous file with comments | « appengine/components/components/config/endpoint.py ('k') | appengine/components/components/config/remote.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698