# Copyright 2020 The PDFium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import re class MockInputApi(object): """Mock class for the InputApi class. This class can be used for unittests for presubmit by initializing the files attribute as the list of changed files. """ def __init__(self): self.files = [] self.re = re def AffectedFiles(self, file_filter=None, include_deletes=False): # pylint: disable=unused-argument return self.files class MockOutputApi(object): """Mock class for the OutputApi class. An instance of this class can be passed to presubmit unittests for outputting various types of results. """ class PresubmitResult(object): def __init__(self, message, items=None, long_text=''): self.message = message self.items = items self.long_text = long_text def __repr__(self): return self.message class PresubmitError(PresubmitResult): def __init__(self, message, items=None, long_text=''): MockOutputApi.PresubmitResult.__init__(self, message, items, long_text) self.type = 'error' class PresubmitPromptWarning(PresubmitResult): def __init__(self, message, items=None, long_text=''): MockOutputApi.PresubmitResult.__init__(self, message, items, long_text) self.type = 'warning' class MockFile(object): """Mock class for the File class. This class can be used to form the mock list of changed files in MockInputApi for presubmit unittests. """ def __init__(self, local_path, new_contents=None, old_contents=None, action='A'): self._local_path = local_path if new_contents is None: new_contents = [] self._new_contents = new_contents self._changed_contents = [(i + 1, l) for i, l in enumerate(new_contents)] self._action = action self._old_contents = old_contents def ChangedContents(self): return self._changed_contents def LocalPath(self): return self._local_path