| # Copyright 2021 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. | |
| DEPS = [ | |
| 'flutter/common', | |
| 'recipe_engine/file', | |
| 'recipe_engine/path', | |
| 'recipe_engine/properties', | |
| ] | |
| def RunSteps(api): | |
| method = api.properties['method'] | |
| if method == 'is_release_candidate_branch': | |
| assert api.common.is_release_candidate_branch( | |
| api.properties['branch'] | |
| ) == api.properties['expectation'] | |
| elif method == 'branch_ref_to_branch_name': | |
| ref = api.properties['branch_name'] | |
| expectation = api.properties['expectation'] | |
| assert api.common.branch_ref_to_branch_name(ref) == expectation | |
| elif method == 'get_release_candidate_branch_from_checkout': | |
| checkout = api.properties['checkout'] | |
| expectation = api.properties['expectation'] | |
| actual = api.common.get_release_candidate_branch_from_checkout(checkout) | |
| assert actual == expectation, "'%s' did not match expected ('%s') version" % ( | |
| actual, expectation | |
| ) | |
| else: | |
| raise AssertionError( | |
| f'Malformed test property: key "method" was "{method}". ' + | |
| 'You probably need to add this method to the RunSteps function.' | |
| ) | |
| def GenTests(api): | |
| checkout_path = api.path.start_dir / 'flutter' | |
| yield api.test( | |
| 'is_release_candidate_branch detects non-release branch', | |
| api.properties( | |
| **{ | |
| 'method': 'is_release_candidate_branch', | |
| 'branch': 'main', | |
| 'expectation': False, | |
| } | |
| ) | |
| ) | |
| yield api.test( | |
| 'is_release_candidate_branch detects release branch', | |
| api.properties( | |
| **{ | |
| 'method': 'is_release_candidate_branch', | |
| 'branch': 'flutter-10.37-candidate.1001', | |
| 'expectation': True, | |
| } | |
| ) | |
| ) | |
| yield api.test( | |
| 'branch_ref_to_branch_name_works', | |
| api.properties( | |
| method='branch_ref_to_branch_name', | |
| branch_name='refs/heads/foo_bar', | |
| expectation='foo_bar', | |
| ) | |
| ) | |
| yield api.test( | |
| 'catches_invalid_method_property', | |
| api.properties(method=None), | |
| api.expect_exception('AssertionError'), | |
| ) | |
| version_path = checkout_path / 'bin/internal/release-candidate-branch.version' | |
| yield api.test( | |
| 'get_release_candidate_branch_from_checkout', | |
| api.path.exists(version_path), | |
| api.step_data( | |
| 'read release-candidate-branch.version', | |
| api.file.read_text('flutter-3.34-candidate.0',), | |
| ), | |
| api.properties( | |
| method='get_release_candidate_branch_from_checkout', | |
| checkout=checkout_path, | |
| expectation='flutter-3.34-candidate.0', | |
| ) | |
| ) | |
| yield api.test( | |
| 'get_release_candidate_branch_from_checkout_missing_file', | |
| api.properties( | |
| method='get_release_candidate_branch_from_checkout', | |
| checkout=checkout_path, | |
| expectation=None, | |
| ) | |
| ) |