| # Copyright 2020 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.post_process import DropExpectation |
| |
| DEPS = [ |
| 'flutter/bucket_util', |
| 'flutter/zip', |
| 'recipe_engine/buildbucket', |
| 'recipe_engine/path', |
| 'recipe_engine/properties', |
| 'recipe_engine/runtime', |
| ] |
| |
| |
| def RunSteps(api): |
| api.bucket_util.upload_folder( |
| 'Upload test.zip', # dir_label |
| 'src', # parent_directory |
| 'build', # folder_name |
| 'test1.zip') # zip_name |
| |
| api.bucket_util.upload_folder_and_files( |
| 'Upload test.zip', # dir_label |
| 'src', # parent_directory |
| 'build', # folder_name |
| 'test2.zip', # zip_name |
| file_paths=['a.txt']) |
| |
| api.bucket_util.upload_folder_and_files( |
| 'Upload test.zip', # dir_label |
| 'src', # parent_directory |
| 'build', # folder_name |
| 'test3.zip', # zip_name |
| platform='parent_directory', |
| file_paths=['a.txt']) |
| |
| # Prepare files. |
| temp = api.path.mkdtemp('bucketutil-example') |
| |
| local_zip = temp.join('output.zip') |
| package = api.zip.make_package(temp, local_zip) |
| |
| # Add files to zip package. |
| api.bucket_util.add_files(package, ['a', 'b']) |
| api.bucket_util.add_directories(package, ['sub']) |
| package.zip('zipping') |
| |
| api.bucket_util.safe_upload( |
| local_zip, # local_path |
| "foo", # remote_path |
| skip_on_duplicate=True) |
| |
| if api.properties.get('try_bad_file', False): |
| api.bucket_util.safe_upload( |
| temp.join('A_file_that_does_not_exist'), # local_path |
| 'bar', # remote_path |
| skip_on_duplicate=True, |
| add_mock=False) |
| |
| |
| def GenTests(api): |
| yield api.test( |
| 'basic', |
| api.properties( |
| upload_packages=False, |
| ), |
| ) |
| yield api.test( |
| 'basic with fail', |
| api.properties( |
| upload_packages=False, |
| try_bad_file=True, |
| ), |
| api.expect_exception('AssertionError'), # the non-existent file |
| # Expectation file would contain a brittle stack trace. |
| # TODO: Re-enable the expectation file after Python 2 support is no longer |
| # required. |
| api.post_process(DropExpectation), |
| ) |
| yield api.test( |
| 'upload_packages', |
| api.properties( |
| upload_packages=True, |
| ), |
| # These ids are UUIDs derivated from a fixed seed. |
| # To get new ids, just run the test and use the ids generated |
| # by the uuid module. |
| api.step_data( |
| 'Ensure flutter/00000000-0000-0000-0000-000000001337/test1.zip ' |
| 'does not already exist on cloud storage', |
| retcode=1, |
| ), |
| api.step_data( |
| 'Ensure flutter/00000000-0000-0000-0000-00000000133a/test2.zip ' |
| 'does not already exist on cloud storage', |
| retcode=1, |
| ), |
| api.step_data( |
| 'Ensure ' |
| 'flutter/00000000-0000-0000-0000-00000000133d/parent_directory/test3.zip ' |
| 'does not already exist on cloud storage', |
| retcode=1, |
| ), |
| ) |
| yield api.test( |
| 'upload_packages_if_commit_is_present', |
| api.properties( |
| upload_packages=True, |
| ), |
| api.buildbucket.ci_build( |
| git_repo='github.com/flutter/engine', |
| revision='8b3cd40a25a512033cc8c0797e41de9ecfc2432c'), |
| api.step_data( |
| 'Ensure flutter/8b3cd40a25a512033cc8c0797e41de9ecfc2432c/test1.zip ' |
| 'does not already exist on cloud storage', |
| retcode=1, |
| ), |
| api.step_data( |
| 'Ensure flutter/8b3cd40a25a512033cc8c0797e41de9ecfc2432c/test2.zip ' |
| 'does not already exist on cloud storage', |
| retcode=1, |
| ), |
| api.step_data( |
| 'Ensure ' |
| 'flutter/8b3cd40a25a512033cc8c0797e41de9ecfc2432c/parent_directory/test3.zip ' |
| 'does not already exist on cloud storage', |
| retcode=1, |
| ), |
| ) |
| yield api.test( |
| 'upload_packages_tiggers_exception_and_package_exists', |
| api.properties( |
| upload_packages=True, |
| ), |
| api.expect_exception('AssertionError'), |
| # Expectation file would contain a brittle stack trace. |
| # TODO: Re-enable the expectation file after Python 2 support is no longer |
| # required. |
| api.post_process(DropExpectation), |
| ) |
| yield api.test( |
| 'upload_packages_experimental_runtime', |
| api.runtime(is_experimental=True), |
| api.properties( |
| upload_packages=True, |
| ), |
| ) |