xref: /aosp_15_r20/external/pdfium/PRESUBMIT_test_mocks.py (revision 3ac0a46f773bac49fa9476ec2b1cf3f8da5ec3a4)
1*3ac0a46fSAndroid Build Coastguard Worker# Copyright 2020 The PDFium Authors
2*3ac0a46fSAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*3ac0a46fSAndroid Build Coastguard Worker# found in the LICENSE file.
4*3ac0a46fSAndroid Build Coastguard Worker
5*3ac0a46fSAndroid Build Coastguard Workerimport re
6*3ac0a46fSAndroid Build Coastguard Worker
7*3ac0a46fSAndroid Build Coastguard Worker
8*3ac0a46fSAndroid Build Coastguard Workerclass MockInputApi(object):
9*3ac0a46fSAndroid Build Coastguard Worker  """Mock class for the InputApi class.
10*3ac0a46fSAndroid Build Coastguard Worker
11*3ac0a46fSAndroid Build Coastguard Worker  This class can be used for unittests for presubmit by initializing the files
12*3ac0a46fSAndroid Build Coastguard Worker  attribute as the list of changed files.
13*3ac0a46fSAndroid Build Coastguard Worker  """
14*3ac0a46fSAndroid Build Coastguard Worker
15*3ac0a46fSAndroid Build Coastguard Worker  def __init__(self):
16*3ac0a46fSAndroid Build Coastguard Worker    self.files = []
17*3ac0a46fSAndroid Build Coastguard Worker    self.re = re
18*3ac0a46fSAndroid Build Coastguard Worker
19*3ac0a46fSAndroid Build Coastguard Worker  def AffectedFiles(self, file_filter=None, include_deletes=False):
20*3ac0a46fSAndroid Build Coastguard Worker    # pylint: disable=unused-argument
21*3ac0a46fSAndroid Build Coastguard Worker    return self.files
22*3ac0a46fSAndroid Build Coastguard Worker
23*3ac0a46fSAndroid Build Coastguard Worker
24*3ac0a46fSAndroid Build Coastguard Workerclass MockOutputApi(object):
25*3ac0a46fSAndroid Build Coastguard Worker  """Mock class for the OutputApi class.
26*3ac0a46fSAndroid Build Coastguard Worker
27*3ac0a46fSAndroid Build Coastguard Worker  An instance of this class can be passed to presubmit unittests for outputting
28*3ac0a46fSAndroid Build Coastguard Worker  various types of results.
29*3ac0a46fSAndroid Build Coastguard Worker  """
30*3ac0a46fSAndroid Build Coastguard Worker
31*3ac0a46fSAndroid Build Coastguard Worker  class PresubmitResult(object):
32*3ac0a46fSAndroid Build Coastguard Worker
33*3ac0a46fSAndroid Build Coastguard Worker    def __init__(self, message, items=None, long_text=''):
34*3ac0a46fSAndroid Build Coastguard Worker      self.message = message
35*3ac0a46fSAndroid Build Coastguard Worker      self.items = items
36*3ac0a46fSAndroid Build Coastguard Worker      self.long_text = long_text
37*3ac0a46fSAndroid Build Coastguard Worker
38*3ac0a46fSAndroid Build Coastguard Worker    def __repr__(self):
39*3ac0a46fSAndroid Build Coastguard Worker      return self.message
40*3ac0a46fSAndroid Build Coastguard Worker
41*3ac0a46fSAndroid Build Coastguard Worker  class PresubmitError(PresubmitResult):
42*3ac0a46fSAndroid Build Coastguard Worker
43*3ac0a46fSAndroid Build Coastguard Worker    def __init__(self, message, items=None, long_text=''):
44*3ac0a46fSAndroid Build Coastguard Worker      MockOutputApi.PresubmitResult.__init__(self, message, items, long_text)
45*3ac0a46fSAndroid Build Coastguard Worker      self.type = 'error'
46*3ac0a46fSAndroid Build Coastguard Worker
47*3ac0a46fSAndroid Build Coastguard Worker  class PresubmitPromptWarning(PresubmitResult):
48*3ac0a46fSAndroid Build Coastguard Worker
49*3ac0a46fSAndroid Build Coastguard Worker    def __init__(self, message, items=None, long_text=''):
50*3ac0a46fSAndroid Build Coastguard Worker      MockOutputApi.PresubmitResult.__init__(self, message, items, long_text)
51*3ac0a46fSAndroid Build Coastguard Worker      self.type = 'warning'
52*3ac0a46fSAndroid Build Coastguard Worker
53*3ac0a46fSAndroid Build Coastguard Worker
54*3ac0a46fSAndroid Build Coastguard Workerclass MockFile(object):
55*3ac0a46fSAndroid Build Coastguard Worker  """Mock class for the File class.
56*3ac0a46fSAndroid Build Coastguard Worker
57*3ac0a46fSAndroid Build Coastguard Worker  This class can be used to form the mock list of changed files in
58*3ac0a46fSAndroid Build Coastguard Worker  MockInputApi for presubmit unittests.
59*3ac0a46fSAndroid Build Coastguard Worker  """
60*3ac0a46fSAndroid Build Coastguard Worker
61*3ac0a46fSAndroid Build Coastguard Worker  def __init__(self,
62*3ac0a46fSAndroid Build Coastguard Worker               local_path,
63*3ac0a46fSAndroid Build Coastguard Worker               new_contents=None,
64*3ac0a46fSAndroid Build Coastguard Worker               old_contents=None,
65*3ac0a46fSAndroid Build Coastguard Worker               action='A'):
66*3ac0a46fSAndroid Build Coastguard Worker    self._local_path = local_path
67*3ac0a46fSAndroid Build Coastguard Worker    if new_contents is None:
68*3ac0a46fSAndroid Build Coastguard Worker      new_contents = []
69*3ac0a46fSAndroid Build Coastguard Worker    self._new_contents = new_contents
70*3ac0a46fSAndroid Build Coastguard Worker    self._changed_contents = [(i + 1, l) for i, l in enumerate(new_contents)]
71*3ac0a46fSAndroid Build Coastguard Worker    self._action = action
72*3ac0a46fSAndroid Build Coastguard Worker    self._old_contents = old_contents
73*3ac0a46fSAndroid Build Coastguard Worker
74*3ac0a46fSAndroid Build Coastguard Worker  def ChangedContents(self):
75*3ac0a46fSAndroid Build Coastguard Worker    return self._changed_contents
76*3ac0a46fSAndroid Build Coastguard Worker
77*3ac0a46fSAndroid Build Coastguard Worker  def LocalPath(self):
78*3ac0a46fSAndroid Build Coastguard Worker    return self._local_path
79