# Copyright 2013 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. from recipe_engine import post_process from recipe_engine.recipe_api import Property PYTHON_VERSION_COMPATIBILITY = 'PY2+3' DEPS = [ 'gsutil', 'recipe_engine/platform', 'recipe_engine/properties', ] PROPERTIES = { 'boto_configs': Property(default={}, kind=dict), } def RunSteps(api, boto_configs): with api.gsutil.configure_gsutil(**boto_configs): api.gsutil(['cp', 'gs://some/gs/path', '/some/local/path']) def GenTests(api): yield api.test( 'no_args', api.platform('linux', 64), api.post_process(post_process.DropExpectation), ) yield api.test( 'no_env', api.properties(boto_configs={'some_config': 'some_val'}), api.post_process(post_process.DropExpectation), ) yield api.test( 'mac', api.platform('mac', 64), api.post_process(post_process.DropExpectation), ) yield api.test( 'with_boto_config', api.properties(boto_configs={'some_config': 'some_val'}), api.properties.environ( BOTO_CONFIG='/some/boto/config' ), api.post_check(lambda check, steps: \ check(steps['gsutil cp'].env['BOTO_CONFIG'] is None)), api.post_check(lambda check, steps: \ check('/some/boto/config' in steps['gsutil cp'].env['BOTO_PATH'])), api.post_process(post_process.DropExpectation), ) yield api.test( 'with_boto_path', api.properties(boto_configs={'some_config': 'some_val'}), api.properties.environ( BOTO_PATH='/some/boto/path' ), api.post_check(lambda check, steps: \ check(steps['gsutil cp'].env['BOTO_CONFIG'] is None)), api.post_check(lambda check, steps: \ check('/some/boto/path' in steps['gsutil cp'].env['BOTO_PATH'])), api.post_process(post_process.DropExpectation), )