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

Side by Side Diff: appengine/swarming/handlers_endpoints_test.py

Issue 2272193004: Add endpoint for permissions (Closed) Base URL: https://chromium.googlesource.com/external/github.com/luci/luci-py@migrate-botlist
Patch Set: Address comments Created 4 years, 3 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 unified diff | Download patch
« no previous file with comments | « appengine/swarming/handlers_endpoints.py ('k') | appengine/swarming/handlers_test.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # coding=utf-8 2 # coding=utf-8
3 # Copyright 2015 The LUCI Authors. All rights reserved. 3 # Copyright 2015 The LUCI Authors. All rights reserved.
4 # Use of this source code is governed under the Apache License, Version 2.0 4 # Use of this source code is governed under the Apache License, Version 2.0
5 # that can be found in the LICENSE file. 5 # that can be found in the LICENSE file.
6 6
7 import base64 7 import base64
8 import datetime 8 import datetime
9 import json 9 import json
10 import logging 10 import logging
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 63
64 64
65 class ServerApiTest(BaseTest): 65 class ServerApiTest(BaseTest):
66 api_service_cls = handlers_endpoints.SwarmingServerService 66 api_service_cls = handlers_endpoints.SwarmingServerService
67 67
68 def test_details(self): 68 def test_details(self):
69 """Asserts that server_details returns the correct version.""" 69 """Asserts that server_details returns the correct version."""
70 response = self.call_api('details') 70 response = self.call_api('details')
71 self.assertEqual({'server_version': utils.get_app_version()}, response.json) 71 self.assertEqual({'server_version': utils.get_app_version()}, response.json)
72 72
73 def test_public_permissions(self):
74 """Asserts that permissions respond correctly to an unauthed user."""
75 self.set_as_anonymous()
76 response = self.call_api('permissions')
77 expected = {
78 u'cancel_task': False,
79 u'terminate_bot': False,
80 u'delete_bot': False,
81 u'get_configs': False,
82 u'put_configs': False,
83 u'get_bootstrap_token': False,
84 }
85 self.assertEqual(expected, response.json)
86
87 def test_user_permissions(self):
88 """Asserts that permissions respond correctly to a basic user."""
89 self.set_as_user()
90 response = self.call_api('permissions')
91 expected = {
92 u'cancel_task': True,
93 u'terminate_bot': False,
94 u'delete_bot': False,
95 u'get_configs': True,
96 u'put_configs': False,
97 u'get_bootstrap_token': False,
98 }
99 self.assertEqual(expected, response.json)
100
101 def test_privileged_user_permissions(self):
102 """Asserts that permissions respond correctly to a privileged user."""
103 self.set_as_privileged_user()
104 response = self.call_api('permissions')
105 expected = {
106 u'cancel_task': True,
107 u'terminate_bot': True,
108 u'delete_bot': False,
109 u'get_configs': True,
110 u'put_configs': False,
111 u'get_bootstrap_token': False,
112 }
113 self.assertEqual(expected, response.json)
114
115 def test_admin_permissions(self):
116 """Asserts that permissions respond correctly to an admin."""
117 self.set_as_admin()
118 response = self.call_api('permissions')
119 expected = {
120 u'cancel_task': True,
121 u'terminate_bot': True,
122 u'delete_bot': True,
123 u'get_configs': True,
124 u'put_configs': True,
125 u'get_bootstrap_token': True,
126 }
127 self.assertEqual(expected, response.json)
128
73 def _test_file(self, name): 129 def _test_file(self, name):
74 self.set_as_admin() 130 self.set_as_admin()
75 131
76 now = datetime.datetime(2010, 1, 2, 3, 4, 5) 132 now = datetime.datetime(2010, 1, 2, 3, 4, 5)
77 self.mock_now(now) 133 self.mock_now(now)
78 path = os.path.join(self.APP_DIR, 'swarming_bot', 'config', name + '.py') 134 path = os.path.join(self.APP_DIR, 'swarming_bot', 'config', name + '.py')
79 with open(path, 'rb') as f: 135 with open(path, 'rb') as f:
80 content = f.read().decode('utf-8') 136 content = f.read().decode('utf-8')
81 137
82 expected = { 138 expected = {
(...skipping 1834 matching lines...) Expand 10 before | Expand all | Expand 10 after
1917 self.assertEqual(expected, response.json) 1973 self.assertEqual(expected, response.json)
1918 1974
1919 1975
1920 if __name__ == '__main__': 1976 if __name__ == '__main__':
1921 if '-v' in sys.argv: 1977 if '-v' in sys.argv:
1922 unittest.TestCase.maxDiff = None 1978 unittest.TestCase.maxDiff = None
1923 logging.basicConfig(level=logging.DEBUG) 1979 logging.basicConfig(level=logging.DEBUG)
1924 else: 1980 else:
1925 logging.basicConfig(level=logging.CRITICAL) 1981 logging.basicConfig(level=logging.CRITICAL)
1926 unittest.main() 1982 unittest.main()
OLDNEW
« no previous file with comments | « appengine/swarming/handlers_endpoints.py ('k') | appengine/swarming/handlers_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698