diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-06-18 14:10:49 +0200 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> | 2015-06-18 13:53:24 +0000 |
commit | 813fbf95af77a531c57a8c497345ad2c61d475b3 (patch) | |
tree | 821b2c8de8365f21b6c9ba17a236fb3006a1d506 /chromium/PRESUBMIT_test_mocks.py | |
parent | af6588f8d723931a298c995fa97259bb7f7deb55 (diff) | |
download | qtwebengine-chromium-813fbf95af77a531c57a8c497345ad2c61d475b3.tar.gz |
BASELINE: Update chromium to 44.0.2403.47
Change-Id: Ie056fedba95cf5e5c76b30c4b2c80fca4764aa2f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Diffstat (limited to 'chromium/PRESUBMIT_test_mocks.py')
-rw-r--r-- | chromium/PRESUBMIT_test_mocks.py | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/chromium/PRESUBMIT_test_mocks.py b/chromium/PRESUBMIT_test_mocks.py new file mode 100644 index 00000000000..8e15d8cf53d --- /dev/null +++ b/chromium/PRESUBMIT_test_mocks.py @@ -0,0 +1,134 @@ +# Copyright 2014 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import json +import os +import re +import subprocess +import sys + + +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.json = json + self.re = re + self.os_path = os.path + self.python_executable = sys.executable + self.subprocess = subprocess + self.files = [] + self.is_committing = False + self.change = MockChange([]) + + def AffectedFiles(self, file_filter=None): + return self.files + + def AffectedSourceFiles(self, file_filter=None): + return self.files + + def LocalPaths(self): + return self.files + + def PresubmitLocalPath(self): + return os.path.dirname(__file__) + + def ReadFile(self, filename, mode='rU'): + if hasattr(filename, 'AbsoluteLocalPath'): + filename = filename.AbsoluteLocalPath() + for file_ in self.files: + if file_.LocalPath() == filename: + return '\n'.join(file_.NewContents()) + # Otherwise, file is not in our mock API. + raise IOError, "No such file or directory: '%s'" % filename + + +class MockOutputApi(object): + """Mock class for the OutputApi class. + + An instance of this class can be passed to presubmit unittests for outputing + 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 PresubmitNotifyResult(PresubmitResult): + def __init__(self, message, items=None, long_text=''): + MockOutputApi.PresubmitResult.__init__(self, message, items, long_text) + self.type = 'notify' + + class PresubmitPromptOrNotify(PresubmitResult): + def __init__(self, message, items=None, long_text=''): + MockOutputApi.PresubmitResult.__init__(self, message, items, long_text) + self.type = 'promptOrNotify' + + +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): + self._local_path = local_path + self._new_contents = new_contents + self._changed_contents = [(i + 1, l) for i, l in enumerate(new_contents)] + + def ChangedContents(self): + return self._changed_contents + + def NewContents(self): + return self._new_contents + + def LocalPath(self): + return self._local_path + + def rfind(self, p): + """os.path.basename is called on MockFile so we need an rfind method.""" + return self._local_path.rfind(p) + + def __getitem__(self, i): + """os.path.basename is called on MockFile so we need a get method.""" + return self._local_path[i] + + +class MockAffectedFile(MockFile): + def AbsoluteLocalPath(self): + return self._local_path + + +class MockChange(object): + """Mock class for Change class. + + This class can be used in presubmit unittests to mock the query of the + current change. + """ + + def __init__(self, changed_files): + self._changed_files = changed_files + + def LocalPaths(self): + return self._changed_files |