Index: tests/git_cl_test.py |
=================================================================== |
--- tests/git_cl_test.py (revision 121410) |
+++ tests/git_cl_test.py (working copy) |
@@ -7,6 +7,7 @@ |
import os |
import StringIO |
+import stat |
import sys |
import unittest |
@@ -42,6 +43,15 @@ |
return ['joe@example.com'] |
+class CodereviewSettingsFileMock(object): |
+ def __init__(self): |
+ pass |
+ def read(self): |
Marc-Antoine Ruel (Google)
2012/02/13 20:47:52
You can disable the warning at file level. It's no
|
+ return ("CODE_REVIEW_SERVER: gerrit.chromium.org\n" + |
+ "GERRIT_HOST: gerrit.chromium.org\n" + |
+ "GERRIT_PORT: 29418\n") |
+ |
+ |
class TestGitCl(TestCase): |
def setUp(self): |
super(TestGitCl, self).setUp() |
@@ -393,5 +403,61 @@ |
['reviewer@example.com', 'another@example.com']) |
+ def test_config_gerrit_download_hook(self): |
+ self.mock(git_cl, 'FindCodereviewSettingsFile', CodereviewSettingsFileMock) |
+ def ParseCodereviewSettingsContent(content): |
+ keyvals = {} |
+ keyvals['CODE_REVIEW_SERVER'] = 'gerrit.chromium.org' |
+ keyvals['GERRIT_HOST'] = 'gerrit.chromium.org' |
+ keyvals['GERRIT_PORT'] = '29418' |
+ return keyvals |
+ self.mock(git_cl.gclient_utils, 'ParseCodereviewSettingsContent', |
+ ParseCodereviewSettingsContent) |
+ self.mock(git_cl.os, 'access', self._mocked_call) |
+ self.mock(git_cl.os, 'chmod', self._mocked_call) |
+ def AbsPath(path): |
+ if not path.startswith('/'): |
+ return os.path.join('/usr/local/src', path) |
+ return path |
+ self.mock(git_cl.os.path, 'abspath', AbsPath) |
+ def Exists(path): |
+ if path == '/usr/local/src/.git/hooks/commit-msg': |
+ return False |
+ # others paths, such as /usr/share/locale/.... |
+ return True |
+ self.mock(git_cl.os.path, 'exists', Exists) |
+ self.mock(git_cl.urllib, 'urlretrieve', self._mocked_call) |
+ self.calls = [ |
+ ((['git', 'config', 'rietveld.server', 'gerrit.chromium.org'],), ''), |
+ ((['git', 'config', '--unset-all', 'rietveld.cc'],), ''), |
+ ((['git', 'config', '--unset-all', 'rietveld.tree-status-url'],), ''), |
+ ((['git', 'config', '--unset-all', 'rietveld.viewvc-url'],), ''), |
+ ((['git', 'config', 'gerrit.host', 'gerrit.chromium.org'],), ''), |
+ ((['git', 'config', 'gerrit.port', '29418'],), ''), |
+ # DownloadHooks(False) |
+ ((['git', 'config', 'gerrit.host'],), 'gerrit.chromium.org'), |
+ ((['git', 'config', 'rietveld.server'],), 'gerrit.chromium.org'), |
+ ((['git', 'rev-parse', '--show-cdup'],), ''), |
+ (('/usr/local/src/.git/hooks/commit-msg', os.X_OK,), False), |
+ (('https://gerrit.chromium.org/tools/hooks/commit-msg', |
+ '/usr/local/src/.git/hooks/commit-msg',), ''), |
+ (('/usr/local/src/.git/hooks/commit-msg', |
+ stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR,), ''), |
+ # GetCodereviewSettingsInteractively |
+ ((['git', 'config', 'rietveld.server'],), 'gerrit.chromium.org'), |
+ (('Rietveld server (host[:port]) [https://gerrit.chromium.org]:',), |
+ ''), |
+ ((['git', 'config', 'rietveld.cc'],), ''), |
+ (('CC list:',), ''), |
+ ((['git', 'config', 'rietveld.tree-status-url'],), ''), |
+ (('Tree status URL:',), ''), |
+ ((['git', 'config', 'rietveld.viewvc-url'],), ''), |
+ (('ViewVC URL:',), ''), |
+ # DownloadHooks(True) |
+ (('/usr/local/src/.git/hooks/commit-msg', os.X_OK,), True), |
+ ] |
+ git_cl.main(['config']) |
+ |
+ |
if __name__ == '__main__': |
unittest.main() |