Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(394)

Side by Side Diff: tests/git_cl_test.py

Issue 2392463009: git cl try-results for Gerrit. (Closed)
Patch Set: Better message. Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « git_cl.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Unit tests for git_cl.py.""" 6 """Unit tests for git_cl.py."""
7 7
8 import os 8 import os
9 import StringIO 9 import StringIO
10 import stat 10 import stat
(...skipping 1952 matching lines...) Expand 10 before | Expand all | Expand 10 after
1963 'builder_name': 'my-builder', 1963 'builder_name': 'my-builder',
1964 'status': 'STARTED', 1964 'status': 'STARTED',
1965 'result': None, 1965 'result': None,
1966 'failure_reason': None, 1966 'failure_reason': None,
1967 'url': 'http://build.cr.org/p/x.y/builders/my-builder/builds/2', 1967 'url': 'http://build.cr.org/p/x.y/builders/my-builder/builds/2',
1968 } 1968 }
1969 ] 1969 ]
1970 self.calls = [(('write_json', 'output.json', expected_output), '')] 1970 self.calls = [(('write_json', 'output.json', expected_output), '')]
1971 git_cl.write_try_results_json('output.json', self.BUILDBUCKET_BUILDS_MAP) 1971 git_cl.write_try_results_json('output.json', self.BUILDBUCKET_BUILDS_MAP)
1972 1972
1973 def _setup_fetch_try_jobs_rietveld(self, *request_results): 1973 def _setup_fetch_try_jobs(self, most_recent_patchset=20001):
1974 out = StringIO.StringIO() 1974 out = StringIO.StringIO()
1975 self.mock(sys, 'stdout', out) 1975 self.mock(sys, 'stdout', out)
1976 self.mock(git_cl.Changelist, 'GetMostRecentPatchset', lambda *args: 20001) 1976 self.mock(git_cl.Changelist, 'GetMostRecentPatchset',
1977 lambda *args: most_recent_patchset)
1977 self.mock(git_cl.auth, 'get_authenticator_for_host', lambda host, _cfg: 1978 self.mock(git_cl.auth, 'get_authenticator_for_host', lambda host, _cfg:
1978 self._mocked_call(['get_authenticator_for_host', host])) 1979 self._mocked_call(['get_authenticator_for_host', host]))
1979 self.mock(git_cl, '_buildbucket_retry', lambda *_, **__: 1980 self.mock(git_cl, '_buildbucket_retry', lambda *_, **__:
1980 self._mocked_call(['_buildbucket_retry'])) 1981 self._mocked_call(['_buildbucket_retry']))
1982
1983 def _setup_fetch_try_jobs_rietveld(self, *request_results):
1984 self._setup_fetch_try_jobs(most_recent_patchset=20001)
1981 self.calls += [ 1985 self.calls += [
1982 ((['git', 'symbolic-ref', 'HEAD'],), 'feature'), 1986 ((['git', 'symbolic-ref', 'HEAD'],), 'feature'),
1983 ((['git', 'config', 'branch.feature.rietveldissue'],), '1'), 1987 ((['git', 'config', 'branch.feature.rietveldissue'],), '1'),
Sergiy Byelozyorov 2016/10/07 15:36:13 shouldn't ((['git', 'config', 'branch.feature.ge
tandrii(chromium) 2016/10/07 15:38:47 No, because it's expectation :) Well, actually if
Sergiy Byelozyorov 2016/10/07 15:39:31 Acknowledged.
1984 ((['git', 'config', 'rietveld.autoupdate'],), CERR1), 1988 ((['git', 'config', 'rietveld.autoupdate'],), CERR1),
1985 ((['git', 'config', 'rietveld.server'],), 'codereview.example.com'), 1989 ((['git', 'config', 'rietveld.server'],), 'codereview.example.com'),
1986 ((['git', 'config', 'branch.feature.rietveldpatchset'],), '20001'), 1990 ((['git', 'config', 'branch.feature.rietveldpatchset'],), '20001'),
1987 ((['git', 'config', 'branch.feature.rietveldserver'],), 1991 ((['git', 'config', 'branch.feature.rietveldserver'],),
1988 'codereview.example.com'), 1992 'codereview.example.com'),
1989 ((['get_authenticator_for_host', 'codereview.example.com'],), 1993 ((['get_authenticator_for_host', 'codereview.example.com'],),
1990 AuthenticatorMock()), 1994 AuthenticatorMock()),
1991 ] + [((['_buildbucket_retry'],), r) for r in request_results] 1995 ] + [((['_buildbucket_retry'],), r) for r in request_results]
1992 1996
1993 def test_fetch_try_jobs_none_rietveld(self): 1997 def test_fetch_try_jobs_none_rietveld(self):
1994 self._setup_fetch_try_jobs_rietveld({}) 1998 self._setup_fetch_try_jobs_rietveld({})
1999 # Simulate that user isn't logged in.
2000 self.mock(AuthenticatorMock, 'has_cached_credentials', lambda _: False)
1995 self.assertEqual(0, git_cl.main(['try-results'])) 2001 self.assertEqual(0, git_cl.main(['try-results']))
2002 self.assertRegexpMatches(sys.stdout.getvalue(),
2003 'Warning: Some results might be missing')
Sergiy Byelozyorov 2016/10/07 15:36:13 why was this logic changed? didn't it work from be
tandrii(chromium) 2016/10/07 15:38:47 I changed the test to have better coverage. Actual
Sergiy Byelozyorov 2016/10/07 15:39:31 Acknowledged.
1996 self.assertRegexpMatches(sys.stdout.getvalue(), 'No try jobs') 2004 self.assertRegexpMatches(sys.stdout.getvalue(), 'No try jobs')
1997 2005
1998 def test_fetch_try_jobs_some_rietveld(self): 2006 def test_fetch_try_jobs_some_rietveld(self):
1999 self._setup_fetch_try_jobs_rietveld({ 2007 self._setup_fetch_try_jobs_rietveld({
2000 'builds': self.BUILDBUCKET_BUILDS_MAP.values(), 2008 'builds': self.BUILDBUCKET_BUILDS_MAP.values(),
2001 }) 2009 })
2002 self.assertEqual(0, git_cl.main(['try-results'])) 2010 self.assertEqual(0, git_cl.main(['try-results']))
2003 self.assertRegexpMatches(sys.stdout.getvalue(), 'Failures:') 2011 self.assertRegexpMatches(sys.stdout.getvalue(), '^Failures:')
2004 self.assertRegexpMatches(sys.stdout.getvalue(), 'Started:') 2012 self.assertRegexpMatches(sys.stdout.getvalue(), 'Started:')
2005 self.assertRegexpMatches(sys.stdout.getvalue(), '2 try jobs') 2013 self.assertRegexpMatches(sys.stdout.getvalue(), '2 try jobs')
2006 2014
2015 def _setup_fetch_try_jobs_gerrit(self, *request_results):
2016 self._setup_fetch_try_jobs(most_recent_patchset=13)
2017 self.calls += [
2018 ((['git', 'symbolic-ref', 'HEAD'],), 'feature'),
2019 ((['git', 'config', 'branch.feature.rietveldissue'],), CERR1),
2020 ((['git', 'config', 'branch.feature.gerritissue'],), '1'),
2021 # Simulate that Gerrit has more patchsets than local.
2022 ((['git', 'config', 'branch.feature.gerritpatchset'],), '12'),
2023 ((['git', 'config', 'branch.feature.gerritserver'],),
2024 'https://x-review.googlesource.com'),
2025 ((['get_authenticator_for_host', 'x-review.googlesource.com'],),
2026 AuthenticatorMock()),
2027 ] + [((['_buildbucket_retry'],), r) for r in request_results]
2028
2029 def test_fetch_try_jobs_none_gerrit(self):
2030 self._setup_fetch_try_jobs_gerrit({})
2031 self.assertEqual(0, git_cl.main(['try-results']))
2032 self.assertRegexpMatches(
2033 sys.stdout.getvalue(),
2034 r'Warning: Codereview server has newer patchsets \(13\)')
2035 self.assertRegexpMatches(sys.stdout.getvalue(), 'No try jobs')
2036
2037 def test_fetch_try_jobs_some_gerrit(self):
2038 self._setup_fetch_try_jobs_gerrit({
2039 'builds': self.BUILDBUCKET_BUILDS_MAP.values(),
2040 })
2041 # Explicit --patchset means actual local patchset doesn't matter.
2042 self.calls.remove(
2043 ((['git', 'config', 'branch.feature.gerritpatchset'],), '12'))
2044 self.assertEqual(0, git_cl.main(['try-results', '--patchset', '5']))
2045
2046 # ... and doesn't result in warning.
2047 self.assertNotRegexpMatches(sys.stdout.getvalue(), 'Warning')
2048 self.assertRegexpMatches(sys.stdout.getvalue(), '^Failures:')
2049 self.assertRegexpMatches(sys.stdout.getvalue(), 'Started:')
2050 self.assertRegexpMatches(sys.stdout.getvalue(), '2 try jobs')
2051
2007 2052
2008 if __name__ == '__main__': 2053 if __name__ == '__main__':
2009 git_cl.logging.basicConfig( 2054 git_cl.logging.basicConfig(
2010 level=git_cl.logging.DEBUG if '-v' in sys.argv else git_cl.logging.ERROR) 2055 level=git_cl.logging.DEBUG if '-v' in sys.argv else git_cl.logging.ERROR)
2011 unittest.main() 2056 unittest.main()
OLDNEW
« no previous file with comments | « git_cl.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698