| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright 2015 The LUCI Authors. All rights reserved. | 2 # Copyright 2015 The LUCI Authors. All rights reserved. |
| 3 # Use of this source code is governed under the Apache License, Version 2.0 | 3 # Use of this source code is governed under the Apache License, Version 2.0 |
| 4 # that can be found in the LICENSE file. | 4 # that can be found in the LICENSE file. |
| 5 | 5 |
| 6 from test_env import future | 6 from test_env import future |
| 7 import test_env | 7 import test_env |
| 8 test_env.setup_test_env() | 8 test_env.setup_test_env() |
| 9 | 9 |
| 10 from test_support import test_case | 10 from test_support import test_case |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 | 26 |
| 27 def has_project_access(project_id): | 27 def has_project_access(project_id): |
| 28 return acl.has_projects_access([project_id])[project_id] | 28 return acl.has_projects_access([project_id])[project_id] |
| 29 | 29 |
| 30 | 30 |
| 31 class AclTestCase(test_case.TestCase): | 31 class AclTestCase(test_case.TestCase): |
| 32 def setUp(self): | 32 def setUp(self): |
| 33 super(AclTestCase, self).setUp() | 33 super(AclTestCase, self).setUp() |
| 34 self.mock(auth, 'get_current_identity', mock.Mock()) | 34 self.mock(auth, 'get_current_identity', mock.Mock()) |
| 35 auth.get_current_identity.return_value = auth.Anonymous | 35 auth.get_current_identity.return_value = auth.Anonymous |
| 36 self.mock(auth, 'is_admin', lambda *_: False) | |
| 37 self.mock(auth, 'is_group_member', mock.Mock(return_value=False)) | 36 self.mock(auth, 'is_group_member', mock.Mock(return_value=False)) |
| 38 self.mock( | 37 self.mock( |
| 39 services, 'get_services_async', mock.Mock(return_value=future([]))) | 38 services, 'get_services_async', mock.Mock(return_value=future([]))) |
| 40 | 39 |
| 41 acl_cfg = service_config_pb2.AclCfg( | 40 acl_cfg = service_config_pb2.AclCfg( |
| 42 project_access_group='project-admins', | 41 project_access_group='project-admins', |
| 43 ) | 42 ) |
| 44 self.mock(projects, '_filter_existing', lambda pids: pids) | 43 self.mock(projects, '_filter_existing', lambda pids: pids) |
| 45 self.mock(storage, 'get_self_config_async', lambda *_: future(acl_cfg)) | 44 self.mock(storage, 'get_self_config_async', lambda *_: future(acl_cfg)) |
| 46 | 45 |
| 47 def test_admin_can_read_all(self): | 46 def test_admin_can_read_all(self): |
| 48 self.mock(auth, 'is_admin', mock.Mock(return_value=True)) | 47 self.mock(acl, 'is_admin', mock.Mock(return_value=True)) |
| 49 self.assertTrue(can_read_config_set('services/swarming')) | 48 self.assertTrue(can_read_config_set('services/swarming')) |
| 50 self.assertTrue(can_read_config_set('projects/chromium')) | 49 self.assertTrue(can_read_config_set('projects/chromium')) |
| 51 self.assertTrue(has_project_access('chromium')) | 50 self.assertTrue(has_project_access('chromium')) |
| 52 | 51 |
| 53 def test_has_service_access(self): | 52 def test_has_service_access(self): |
| 54 self.assertFalse(can_read_config_set('services/swarming')) | 53 self.assertFalse(can_read_config_set('services/swarming')) |
| 55 | 54 |
| 56 services.get_services_async.return_value = future([ | 55 services.get_services_async.return_value = future([ |
| 57 service_config_pb2.Service( | 56 service_config_pb2.Service( |
| 58 id='swarming', access=['group:swarming-app']), | 57 id='swarming', access=['group:swarming-app']), |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 self.assertFalse(has_project_access('projects/swarming')) | 94 self.assertFalse(has_project_access('projects/swarming')) |
| 96 self.assertFalse(can_read_config_set('projects/swarming/refs/heads/x')) | 95 self.assertFalse(can_read_config_set('projects/swarming/refs/heads/x')) |
| 97 | 96 |
| 98 def test_malformed_config_set(self): | 97 def test_malformed_config_set(self): |
| 99 with self.assertRaises(ValueError): | 98 with self.assertRaises(ValueError): |
| 100 can_read_config_set('invalid config set') | 99 can_read_config_set('invalid config set') |
| 101 | 100 |
| 102 | 101 |
| 103 if __name__ == '__main__': | 102 if __name__ == '__main__': |
| 104 test_env.main() | 103 test_env.main() |
| OLD | NEW |