| # Copyright 2019 The Fuchsia 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 google.protobuf import text_format as textpb |
| from recipe_engine import recipe_test_api |
| |
| |
| class TextProtoTestApi(recipe_test_api.RecipeTestApi): |
| def spec_not_found(self, step_name="build_init"): |
| """Returns mock step data that simulates a missing spec file.""" |
| return self.step_data(step_name, retcode=2) |
| |
| def spec_parse_error(self, step_name="build_init"): |
| """Returns mock step data that simulates a spec file that fails to parse.""" |
| return self.step_data( |
| step_name, stdout=self.m.raw_io.output("not a proto message"), retcode=0, |
| ) |
| |
| def spec_loaded_ok(self, message, step_name="build_init"): |
| """Returns mock step data that simulates successfully fetching a spec file. |
| |
| Args: |
| message: The spec as a protobuf Message. |
| """ |
| return self.step_data( |
| step_name, |
| retcode=0, |
| stdout=self.m.raw_io.output(textpb.MessageToString(message)), |
| ) |