blob: c7c9c1c0fbb4d7fa4ad872af351f009ef14f5811 [file] [log] [blame]
# 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)
account.get_id_token("http://www.example.com")
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 / '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),
status='INFRA_FAILURE',
)