| 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 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 id='swarming', access=['group:swarming-app']), | 57 id='swarming', access=['group:swarming-app']), |
| 58 ]) | 58 ]) |
| 59 auth.is_group_member.side_effect = lambda g, *_: g == 'swarming-app' | 59 auth.is_group_member.side_effect = lambda g, *_: g == 'swarming-app' |
| 60 | 60 |
| 61 self.assertTrue(can_read_config_set('services/swarming')) | 61 self.assertTrue(can_read_config_set('services/swarming')) |
| 62 | 62 |
| 63 def test_has_service_access_no_access(self): | 63 def test_has_service_access_no_access(self): |
| 64 self.assertFalse(can_read_config_set('services/swarming')) | 64 self.assertFalse(can_read_config_set('services/swarming')) |
| 65 | 65 |
| 66 def test_has_project_access_group(self): | 66 def test_has_project_access_group(self): |
| 67 self.mock(projects, 'get_metadata', mock.Mock()) | 67 self.mock(projects, 'get_metadata_async', mock.Mock(return_value=future({ |
| 68 projects.get_metadata.return_value = { | |
| 69 'secret': project_config_pb2.ProjectCfg( | 68 'secret': project_config_pb2.ProjectCfg( |
| 70 access=['group:googlers', 'a@a.com']), | 69 access=['group:googlers', 'a@a.com']), |
| 71 } | 70 }))) |
| 72 | 71 |
| 73 self.assertFalse(can_read_config_set('projects/secret')) | 72 self.assertFalse(can_read_config_set('projects/secret')) |
| 74 | 73 |
| 75 auth.is_group_member.side_effect = lambda name, *_: name == 'googlers' | 74 auth.is_group_member.side_effect = lambda name, *_: name == 'googlers' |
| 76 self.assertTrue(can_read_config_set('projects/secret')) | 75 self.assertTrue(can_read_config_set('projects/secret')) |
| 77 | 76 |
| 78 auth.is_group_member.side_effect = lambda name, *_: name == 'project-admins' | 77 auth.is_group_member.side_effect = lambda name, *_: name == 'project-admins' |
| 79 self.assertTrue(can_read_config_set('projects/secret')) | 78 self.assertTrue(can_read_config_set('projects/secret')) |
| 80 | 79 |
| 81 def test_has_project_access_identity(self): | 80 def test_has_project_access_identity(self): |
| 82 self.mock(projects, 'get_metadata', mock.Mock()) | 81 self.mock(projects, 'get_metadata_async', mock.Mock(return_value=future({ |
| 83 projects.get_metadata.return_value = { | |
| 84 'secret': project_config_pb2.ProjectCfg( | 82 'secret': project_config_pb2.ProjectCfg( |
| 85 access=['group:googlers', 'a@a.com']), | 83 access=['group:googlers', 'a@a.com']), |
| 86 } | 84 }))) |
| 87 | 85 |
| 88 self.assertFalse(can_read_config_set('projects/secret')) | 86 self.assertFalse(can_read_config_set('projects/secret')) |
| 89 | 87 |
| 90 auth.get_current_identity.return_value = auth.Identity('user', 'a@a.com') | 88 auth.get_current_identity.return_value = auth.Identity('user', 'a@a.com') |
| 91 self.assertTrue(can_read_config_set('projects/secret')) | 89 self.assertTrue(can_read_config_set('projects/secret')) |
| 92 | 90 |
| 93 def test_can_read_project_config_no_access(self): | 91 def test_can_read_project_config_no_access(self): |
| 94 self.assertFalse(has_project_access('projects/swarming')) | 92 self.assertFalse(has_project_access('projects/swarming')) |
| 95 self.assertFalse(can_read_config_set('projects/swarming/refs/heads/x')) | 93 self.assertFalse(can_read_config_set('projects/swarming/refs/heads/x')) |
| 96 | 94 |
| 97 def test_malformed_config_set(self): | 95 def test_malformed_config_set(self): |
| 98 with self.assertRaises(ValueError): | 96 with self.assertRaises(ValueError): |
| 99 can_read_config_set('invalid config set') | 97 can_read_config_set('invalid config set') |
| 100 | 98 |
| 101 | 99 |
| 102 if __name__ == '__main__': | 100 if __name__ == '__main__': |
| 103 test_env.main() | 101 test_env.main() |
| OLD | NEW |