| # Copyright 2018 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 recipe_test_api |
| |
| |
| class TryserverTestApi(recipe_test_api.RecipeTestApi): |
| |
| @recipe_test_api.mod_test_data |
| @staticmethod |
| def gerrit_change_target_ref(target_ref): |
| assert target_ref.startswith('refs/') |
| return target_ref |
| |
| def get_files_affected_by_patch(self, |
| files, |
| step_name='git diff to analyze patch'): |
| """Override test data for the `get_files_affected_by_patch` method. |
| |
| Args: |
| files: The files that git should report as changed as paths |
| relative to the root of the repo. |
| |
| Example: |
| yield api.test( |
| 'my_test', |
| api.tryserver.get_files_affected_by_patch('foo.cc', |
| 'bar/baz.cc'), |
| ) |
| """ |
| output = self.m.raw_io.stream_output('\n'.join(files)) |
| return self.override_step_data(step_name, output) |
| |
| def get_footers(self, footers, step_name='parse description'): |
| """Override test data for the `get_footers` method. |
| |
| Args: |
| footers: A dict containing key/value pairs for footers to return. To be |
| accurate to git_footers.py's actual behavior, values should be lists. |
| |
| Example: |
| yield api.test( |
| 'my_test', |
| api.tryserver.get_footers({'Footer-Key': ['footer_value']})) |
| """ |
| output = self.m.json.output(footers) |
| return self.override_step_data(step_name, output) |