Chromium Code Reviews| Index: recipe_modules/file/api.py |
| diff --git a/recipe_modules/file/api.py b/recipe_modules/file/api.py |
| index ca9ebb66bca268c6e2714b56352c00e7ab9a3f45..8701fd817a62ca265c884371854e37b3dd181fdb 100644 |
| --- a/recipe_modules/file/api.py |
| +++ b/recipe_modules/file/api.py |
| @@ -224,6 +224,29 @@ class FileApi(recipe_api.RecipeApi): |
| name, ['ensure-directory', '--mode', oct(mode), dest]) |
| self.m.path.mock_add_paths(dest) |
| + def filesizes(self, name, files, **kwargs): |
|
iannucci
2017/08/07 19:27:30
No kwargs; we're trying to stamp this out everywhe
|
| + """Returns list of filesizes for the given files. |
| + |
| + Args: |
| + * name (str) - The name of the step. |
| + * files (list[Path]) - Paths to files. |
| + |
| + Returns list[int], size of each file in bytes. |
| + """ |
| + test_data = kwargs.pop('test_data', [111 * (i+1) + (i % 3 - 2) * i |
| + for i, _ in enumerate(files)]) |
| + assert not kwargs, 'only test_data kwarg allowed' |
| + for f in files: |
| + self.m.path.assert_absolute(f) |
| + result = self._run( |
| + name, ['filesizes'] + list(files), |
| + lambda: self.test_api.filesizes(test_data), |
| + self.m.raw_io.output_text()) |
| + ret = map(int, result.stdout.strip().splitlines()) |
| + result.presentation.logs['filesizes'] = ['%s: \t%d' % fs |
| + for fs in zip(files, ret)] |
| + return ret |
| + |
| def rmtree(self, name, source): |
| """Recursively removes a directory. |