| # Copyright 2017 The LUCI Authors. All rights reserved. |
| # Use of this source code is governed under the Apache License, Version 2.0 |
| # that can be found in the LICENSE file. |
| |
| from recipe_engine.recipe_api import Property |
| |
| DEPS = [ |
| 'platform', |
| 'properties', |
| 'raw_io', |
| 'service_account', |
| 'path', |
| ] |
| |
| PROPERTIES = { |
| 'key_path': Property(), |
| 'scopes': Property(), |
| } |
| |
| |
| def RunSteps(api, key_path, scopes): |
| if key_path: |
| account = api.service_account.from_credentials_json(key_path) |
| assert account.key_path == key_path |
| else: |
| account = api.service_account.default() |
| account.get_access_token(scopes) |
| |
| |
| def GenTests(api): |
| def props(key_path=None, scopes=None): |
| return api.properties.generic( |
| key_path=key_path, |
| scopes=scopes) |
| |
| yield ( |
| api.test('default') + |
| api.platform('linux', 64) + |
| props()) |
| yield ( |
| api.test('windows') + |
| api.platform('win', 64) + |
| props()) |
| yield ( |
| api.test('json_key') + |
| api.platform('linux', 64) + |
| props(key_path=api.path['start_dir'].join('key_name.json'))) |
| yield ( |
| api.test('custom_scopes') + |
| api.platform('linux', 64) + |
| props(scopes=['B', 'A'])) |
| yield ( |
| api.test('no_authutil') + |
| api.platform('linux', 64) + |
| props() + |
| api.step_data('get access token for default account', retcode=1)) |