| OLD | NEW |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import json | 5 import json |
| 6 import os | 6 import os |
| 7 import re | 7 import re |
| 8 import subprocess | 8 import subprocess |
| 9 import sys | 9 import sys |
| 10 | 10 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 self.files = [] | 25 self.files = [] |
| 26 self.is_committing = False | 26 self.is_committing = False |
| 27 self.change = MockChange([]) | 27 self.change = MockChange([]) |
| 28 | 28 |
| 29 def AffectedFiles(self, file_filter=None): | 29 def AffectedFiles(self, file_filter=None): |
| 30 return self.files | 30 return self.files |
| 31 | 31 |
| 32 def AffectedSourceFiles(self, file_filter=None): | 32 def AffectedSourceFiles(self, file_filter=None): |
| 33 return self.files | 33 return self.files |
| 34 | 34 |
| 35 def LocalPaths(self): |
| 36 return self.files |
| 37 |
| 35 def PresubmitLocalPath(self): | 38 def PresubmitLocalPath(self): |
| 36 return os.path.dirname(__file__) | 39 return os.path.dirname(__file__) |
| 37 | 40 |
| 38 def ReadFile(self, filename, mode='rU'): | 41 def ReadFile(self, filename, mode='rU'): |
| 39 if hasattr(filename, 'AbsoluteLocalPath'): | 42 if hasattr(filename, 'AbsoluteLocalPath'): |
| 40 filename = filename.AbsoluteLocalPath() | 43 filename = filename.AbsoluteLocalPath() |
| 41 for file_ in self.files: | 44 for file_ in self.files: |
| 42 if file_.LocalPath() == filename: | 45 if file_.LocalPath() == filename: |
| 43 return '\n'.join(file_.NewContents()) | 46 return '\n'.join(file_.NewContents()) |
| 44 # Otherwise, file is not in our mock API. | 47 # Otherwise, file is not in our mock API. |
| (...skipping 10 matching lines...) Expand all Loading... |
| 55 class PresubmitResult(object): | 58 class PresubmitResult(object): |
| 56 def __init__(self, message, items=None, long_text=''): | 59 def __init__(self, message, items=None, long_text=''): |
| 57 self.message = message | 60 self.message = message |
| 58 self.items = items | 61 self.items = items |
| 59 self.long_text = long_text | 62 self.long_text = long_text |
| 60 | 63 |
| 61 def __repr__(self): | 64 def __repr__(self): |
| 62 return self.message | 65 return self.message |
| 63 | 66 |
| 64 class PresubmitError(PresubmitResult): | 67 class PresubmitError(PresubmitResult): |
| 65 def __init__(self, message, items, long_text=''): | 68 def __init__(self, message, items=None, long_text=''): |
| 66 MockOutputApi.PresubmitResult.__init__(self, message, items, long_text) | 69 MockOutputApi.PresubmitResult.__init__(self, message, items, long_text) |
| 67 self.type = 'error' | 70 self.type = 'error' |
| 68 | 71 |
| 69 class PresubmitPromptWarning(PresubmitResult): | 72 class PresubmitPromptWarning(PresubmitResult): |
| 70 def __init__(self, message, items, long_text=''): | 73 def __init__(self, message, items=None, long_text=''): |
| 71 MockOutputApi.PresubmitResult.__init__(self, message, items, long_text) | 74 MockOutputApi.PresubmitResult.__init__(self, message, items, long_text) |
| 72 self.type = 'warning' | 75 self.type = 'warning' |
| 73 | 76 |
| 74 class PresubmitNotifyResult(PresubmitResult): | 77 class PresubmitNotifyResult(PresubmitResult): |
| 75 def __init__(self, message, items, long_text=''): | 78 def __init__(self, message, items=None, long_text=''): |
| 76 MockOutputApi.PresubmitResult.__init__(self, message, items, long_text) | 79 MockOutputApi.PresubmitResult.__init__(self, message, items, long_text) |
| 77 self.type = 'notify' | 80 self.type = 'notify' |
| 78 | 81 |
| 79 class PresubmitPromptOrNotify(PresubmitResult): | 82 class PresubmitPromptOrNotify(PresubmitResult): |
| 80 def __init__(self, message, items, long_text=''): | 83 def __init__(self, message, items=None, long_text=''): |
| 81 MockOutputApi.PresubmitResult.__init__(self, message, items, long_text) | 84 MockOutputApi.PresubmitResult.__init__(self, message, items, long_text) |
| 82 self.type = 'promptOrNotify' | 85 self.type = 'promptOrNotify' |
| 83 | 86 |
| 84 | 87 |
| 85 class MockFile(object): | 88 class MockFile(object): |
| 86 """Mock class for the File class. | 89 """Mock class for the File class. |
| 87 | 90 |
| 88 This class can be used to form the mock list of changed files in | 91 This class can be used to form the mock list of changed files in |
| 89 MockInputApi for presubmit unittests. | 92 MockInputApi for presubmit unittests. |
| 90 """ | 93 """ |
| 91 | 94 |
| 92 def __init__(self, local_path, new_contents): | 95 def __init__(self, local_path, new_contents): |
| 93 self._local_path = local_path | 96 self._local_path = local_path |
| 94 self._new_contents = new_contents | 97 self._new_contents = new_contents |
| 95 self._changed_contents = [(i + 1, l) for i, l in enumerate(new_contents)] | 98 self._changed_contents = [(i + 1, l) for i, l in enumerate(new_contents)] |
| 96 | 99 |
| 97 def ChangedContents(self): | 100 def ChangedContents(self): |
| 98 return self._changed_contents | 101 return self._changed_contents |
| 99 | 102 |
| 100 def NewContents(self): | 103 def NewContents(self): |
| 101 return self._new_contents | 104 return self._new_contents |
| 102 | 105 |
| 103 def LocalPath(self): | 106 def LocalPath(self): |
| 104 return self._local_path | 107 return self._local_path |
| 105 | 108 |
| 109 def rfind(self, p): |
| 110 """os.path.basename is called on MockFile so we need an rfind method.""" |
| 111 return self._local_path.rfind(p) |
| 112 |
| 113 def __getitem__(self, i): |
| 114 """os.path.basename is called on MockFile so we need a get method.""" |
| 115 return self._local_path[i] |
| 116 |
| 106 | 117 |
| 107 class MockAffectedFile(MockFile): | 118 class MockAffectedFile(MockFile): |
| 108 def AbsoluteLocalPath(self): | 119 def AbsoluteLocalPath(self): |
| 109 return self._local_path | 120 return self._local_path |
| 110 | 121 |
| 111 | 122 |
| 112 class MockChange(object): | 123 class MockChange(object): |
| 113 """Mock class for Change class. | 124 """Mock class for Change class. |
| 114 | 125 |
| 115 This class can be used in presubmit unittests to mock the query of the | 126 This class can be used in presubmit unittests to mock the query of the |
| 116 current change. | 127 current change. |
| 117 """ | 128 """ |
| 118 | 129 |
| 119 def __init__(self, changed_files): | 130 def __init__(self, changed_files): |
| 120 self._changed_files = changed_files | 131 self._changed_files = changed_files |
| 121 | 132 |
| 122 def LocalPaths(self): | 133 def LocalPaths(self): |
| 123 return self._changed_files | 134 return self._changed_files |
| OLD | NEW |