Commit 8fc0c1d8 authored by Andrii Shyshkalov's avatar Andrii Shyshkalov

git cl: refactor tests to account for Gerrit GetChangeDetail RPCs.

BUG=681704

Change-Id: I7c8fd09f3c19b9facf876ebeef853e5d77b72a9c
Reviewed-on: https://chromium-review.googlesource.com/432316Reviewed-by: 's avatarAaron Gable <agable@chromium.org>
parent 1090fd5b
...@@ -465,6 +465,12 @@ class TestGitCl(TestCase): ...@@ -465,6 +465,12 @@ class TestGitCl(TestCase):
self.mock(git_cl.upload, 'RealMain', self.fail) self.mock(git_cl.upload, 'RealMain', self.fail)
self.mock(git_cl.watchlists, 'Watchlists', WatchlistsMock) self.mock(git_cl.watchlists, 'Watchlists', WatchlistsMock)
self.mock(git_cl.auth, 'get_authenticator_for_host', AuthenticatorMock) self.mock(git_cl.auth, 'get_authenticator_for_host', AuthenticatorMock)
self.mock(git_cl.gerrit_util, 'GetChangeDetail',
lambda *args, **kwargs: self._mocked_call(
'GetChangeDetail', *args, **kwargs))
self.mock(git_cl.gerrit_util, 'AddReviewers',
lambda h, i, add, is_reviewer, notify: self._mocked_call(
'AddReviewers', h, i, add, is_reviewer, notify))
self.mock(git_cl.gerrit_util.GceAuthenticator, 'is_gce', self.mock(git_cl.gerrit_util.GceAuthenticator, 'is_gce',
classmethod(lambda _: False)) classmethod(lambda _: False))
self.mock(git_cl, 'DieWithError', self.mock(git_cl, 'DieWithError',
...@@ -1104,7 +1110,7 @@ class TestGitCl(TestCase): ...@@ -1104,7 +1110,7 @@ class TestGitCl(TestCase):
calls = [((cmd, ), CERR1)] calls = [((cmd, ), CERR1)]
if issue: if issue:
calls.extend([ calls.extend([
((['git', 'config', 'branch.master.gerritserver'],), ''), ((['git', 'config', 'branch.master.gerritserver'],), CERR1),
]) ])
calls.extend([ calls.extend([
((['git', 'config', 'branch.master.merge'],), 'refs/heads/master'), ((['git', 'config', 'branch.master.merge'],), 'refs/heads/master'),
...@@ -1117,7 +1123,7 @@ class TestGitCl(TestCase): ...@@ -1117,7 +1123,7 @@ class TestGitCl(TestCase):
return calls return calls
@classmethod @classmethod
def _gerrit_base_calls(cls, issue=None): def _gerrit_base_calls(cls, issue=None, fetched_description=None):
return [ return [
((['git', 'symbolic-ref', 'HEAD'],), 'master'), ((['git', 'symbolic-ref', 'HEAD'],), 'master'),
((['git', 'config', 'branch.master.git-cl-similarity'],), ((['git', 'config', 'branch.master.git-cl-similarity'],),
...@@ -1147,7 +1153,17 @@ class TestGitCl(TestCase): ...@@ -1147,7 +1153,17 @@ class TestGitCl(TestCase):
'fake_ancestor_sha...', '.'],), 'fake_ancestor_sha...', '.'],),
'M\t.gitignore\n'), 'M\t.gitignore\n'),
((['git', 'config', 'branch.master.gerritpatchset'],), CERR1), ((['git', 'config', 'branch.master.gerritpatchset'],), CERR1),
] + ([] if issue else [ ] + ([
(('GetChangeDetail', 'chromium-review.googlesource.com',
'123456', ['CURRENT_REVISION', 'CURRENT_COMMIT']),
{
'change_id': '123456789',
'current_revision': 'sha1_of_current_revision',
'revisions': { 'sha1_of_current_revision': {
'commit': {'message': fetched_description},
}},
}),
] if issue else [
((['git', ((['git',
'log', '--pretty=format:%s%n%n%b', 'fake_ancestor_sha...'],), 'log', '--pretty=format:%s%n%n%b', 'fake_ancestor_sha...'],),
'foo'), 'foo'),
...@@ -1286,9 +1302,9 @@ class TestGitCl(TestCase): ...@@ -1286,9 +1302,9 @@ class TestGitCl(TestCase):
] ]
calls += [ calls += [
((['git', 'config', 'rietveld.cc'],), ''), ((['git', 'config', 'rietveld.cc'],), ''),
((['AddReviewers', 'chromium-review.googlesource.com', (('AddReviewers', 'chromium-review.googlesource.com',
123456 if squash else None, 123456 if squash else None,
['joe@example.com'] + cc, False, notify],), ''), ['joe@example.com'] + cc, False, notify), ''),
] ]
calls += cls._git_post_upload_calls() calls += cls._git_post_upload_calls()
return calls return calls
...@@ -1326,11 +1342,10 @@ class TestGitCl(TestCase): ...@@ -1326,11 +1342,10 @@ class TestGitCl(TestCase):
self.mock(git_cl.gclient_utils, 'RunEditor', self.mock(git_cl.gclient_utils, 'RunEditor',
lambda *_, **__: self._mocked_call(['RunEditor'])) lambda *_, **__: self._mocked_call(['RunEditor']))
self.mock(git_cl, 'DownloadGerritHook', self._mocked_call) self.mock(git_cl, 'DownloadGerritHook', self._mocked_call)
self.mock(git_cl.gerrit_util, 'AddReviewers',
lambda h, i, add, is_reviewer, notify: self._mocked_call(
['AddReviewers', h, i, add, is_reviewer, notify]))
self.calls = self._gerrit_base_calls(issue=issue) self.calls = self._gerrit_base_calls(
issue=issue,
fetched_description=description)
self.calls += self._gerrit_upload_calls( self.calls += self._gerrit_upload_calls(
description, reviewers, squash, description, reviewers, squash,
squash_mode=squash_mode, squash_mode=squash_mode,
...@@ -1403,9 +1418,6 @@ class TestGitCl(TestCase): ...@@ -1403,9 +1418,6 @@ class TestGitCl(TestCase):
cc=['more@example.com', 'people@example.com']) cc=['more@example.com', 'people@example.com'])
def test_gerrit_upload_squash_first_is_default(self): def test_gerrit_upload_squash_first_is_default(self):
# Mock Gerrit CL description to indicate the first upload.
self.mock(git_cl.Changelist, 'GetDescription',
lambda *_: None)
self._run_gerrit_upload_test( self._run_gerrit_upload_test(
[], [],
'desc\nBUG=\n\nChange-Id: 123456789', 'desc\nBUG=\n\nChange-Id: 123456789',
...@@ -1413,9 +1425,6 @@ class TestGitCl(TestCase): ...@@ -1413,9 +1425,6 @@ class TestGitCl(TestCase):
expected_upstream_ref='origin/master') expected_upstream_ref='origin/master')
def test_gerrit_upload_squash_first(self): def test_gerrit_upload_squash_first(self):
# Mock Gerrit CL description to indicate the first upload.
self.mock(git_cl.Changelist, 'GetDescription',
lambda *_: None)
self._run_gerrit_upload_test( self._run_gerrit_upload_test(
['--squash'], ['--squash'],
'desc\nBUG=\n\nChange-Id: 123456789', 'desc\nBUG=\n\nChange-Id: 123456789',
...@@ -1425,13 +1434,6 @@ class TestGitCl(TestCase): ...@@ -1425,13 +1434,6 @@ class TestGitCl(TestCase):
def test_gerrit_upload_squash_reupload(self): def test_gerrit_upload_squash_reupload(self):
description = 'desc\nBUG=\n\nChange-Id: 123456789' description = 'desc\nBUG=\n\nChange-Id: 123456789'
# Mock Gerrit CL description to indicate re-upload.
self.mock(git_cl.Changelist, 'GetDescription',
lambda *args: description)
self.mock(git_cl.Changelist, 'GetMostRecentPatchset',
lambda *args: 1)
self.mock(git_cl._GerritChangelistImpl, '_GetChangeDetail',
lambda *args: {'change_id': '123456789'})
self._run_gerrit_upload_test( self._run_gerrit_upload_test(
['--squash'], ['--squash'],
description, description,
...@@ -1615,32 +1617,37 @@ class TestGitCl(TestCase): ...@@ -1615,32 +1617,37 @@ class TestGitCl(TestCase):
self.mock(git_common, 'is_dirty_git_tree', lambda x: True) self.mock(git_common, 'is_dirty_git_tree', lambda x: True)
self.assertNotEqual(git_cl.main(['diff']), 0) self.assertNotEqual(git_cl.main(['diff']), 0)
@staticmethod
def _get_gerrit_codereview_server_calls(branch, value=None,
git_short_host='host',
detect_branch=True):
"""Returns calls executed by _GerritChangelistImpl.GetCodereviewServer.
If value is given, branch.<BRANCH>.gerritcodereview is already set.
"""
calls = []
if detect_branch:
calls.append(((['git', 'symbolic-ref', 'HEAD'],), branch))
calls.append(((['git', 'config', 'branch.' + branch + '.gerritserver'],),
CERR1 if value is None else value))
if value is None:
calls += [
((['git', 'config', 'branch.' + branch + '.merge'],),
'refs/heads' + branch),
((['git', 'config', 'branch.' + branch + '.remote'],),
'origin'),
((['git', 'config', 'remote.origin.url'],),
'https://%s.googlesource.com/my/repo' % git_short_host),
]
return calls
def _patch_common(self, is_gerrit=False, force_codereview=False, def _patch_common(self, is_gerrit=False, force_codereview=False,
new_branch=False): new_branch=False, git_short_host='host',
detect_gerrit_server=True):
self.mock(git_cl.sys, 'stdout', StringIO.StringIO()) self.mock(git_cl.sys, 'stdout', StringIO.StringIO())
self.mock(git_cl._RietveldChangelistImpl, 'GetMostRecentPatchset', self.mock(git_cl._RietveldChangelistImpl, 'GetMostRecentPatchset',
lambda x: '60001') lambda x: '60001')
self.mock(git_cl._GerritChangelistImpl, '_GetChangeDetail', self.mock(git_cl._RietveldChangelistImpl, 'FetchDescription',
lambda *args: {
'current_revision': '7777777777',
'revisions': {
'1111111111': {
'_number': 1,
'fetch': {'http': {
'url': 'https://chromium.googlesource.com/my/repo',
'ref': 'refs/changes/56/123456/1',
}},
},
'7777777777': {
'_number': 7,
'fetch': {'http': {
'url': 'https://chromium.googlesource.com/my/repo',
'ref': 'refs/changes/56/123456/7',
}},
},
},
})
self.mock(git_cl.Changelist, 'GetDescription',
lambda *args: 'Description') lambda *args: 'Description')
self.mock(git_cl, 'IsGitVersionAtLeast', lambda *args: True) self.mock(git_cl, 'IsGitVersionAtLeast', lambda *args: True)
...@@ -1648,6 +1655,7 @@ class TestGitCl(TestCase): ...@@ -1648,6 +1655,7 @@ class TestGitCl(TestCase):
self.calls = [((['git', 'new-branch', 'master'],), ''),] self.calls = [((['git', 'new-branch', 'master'],), ''),]
else: else:
self.calls = [((['git', 'symbolic-ref', 'HEAD'],), 'master')] self.calls = [((['git', 'symbolic-ref', 'HEAD'],), 'master')]
if not force_codereview: if not force_codereview:
# These calls detect codereview to use. # These calls detect codereview to use.
self.calls += [ self.calls += [
...@@ -1662,6 +1670,34 @@ class TestGitCl(TestCase): ...@@ -1662,6 +1670,34 @@ class TestGitCl(TestCase):
self.calls += [ self.calls += [
((['git', 'config', 'gerrit.host'],), 'true'), ((['git', 'config', 'gerrit.host'],), 'true'),
] ]
if detect_gerrit_server:
self.calls += self._get_gerrit_codereview_server_calls(
'master', git_short_host=git_short_host,
detect_branch=not new_branch and force_codereview)
self.calls += [
(('GetChangeDetail', git_short_host + '-review.googlesource.com',
'123456', ['ALL_REVISIONS']),
{
'current_revision': '7777777777',
'revisions': {
'1111111111': {
'_number': 1,
'fetch': {'http': {
'url': 'https://%s.googlesource.com/my/repo' % git_short_host,
'ref': 'refs/changes/56/123456/1',
}},
},
'7777777777': {
'_number': 7,
'fetch': {'http': {
'url': 'https://%s.googlesource.com/my/repo' % git_short_host,
'ref': 'refs/changes/56/123456/7',
}},
},
},
}),
]
else: else:
self.calls += [ self.calls += [
((['git', 'config', 'gerrit.host'],), CERR1), ((['git', 'config', 'gerrit.host'],), CERR1),
...@@ -1699,18 +1735,14 @@ class TestGitCl(TestCase): ...@@ -1699,18 +1735,14 @@ class TestGitCl(TestCase):
self.assertNotEqual(git_cl.main(['patch', '123456']), 0) self.assertNotEqual(git_cl.main(['patch', '123456']), 0)
def test_gerrit_patch_successful(self): def test_gerrit_patch_successful(self):
self._patch_common(is_gerrit=True) self._patch_common(is_gerrit=True, git_short_host='chromium',
detect_gerrit_server=True)
self.calls += [ self.calls += [
((['git', 'fetch', 'https://chromium.googlesource.com/my/repo', ((['git', 'fetch', 'https://chromium.googlesource.com/my/repo',
'refs/changes/56/123456/7'],), ''), 'refs/changes/56/123456/7'],), ''),
((['git', 'cherry-pick', 'FETCH_HEAD'],), ''), ((['git', 'cherry-pick', 'FETCH_HEAD'],), ''),
((['git', 'config', 'branch.master.gerritissue', '123456'],), ((['git', 'config', 'branch.master.gerritissue', '123456'],),
''), ''),
((['git', 'config', 'branch.master.gerritserver'],), ''),
((['git', 'config', 'branch.master.merge'],), 'master'),
((['git', 'config', 'branch.master.remote'],), 'origin'),
((['git', 'config', 'remote.origin.url'],),
'https://chromium.googlesource.com/my/repo'),
((['git', 'config', 'branch.master.gerritserver', ((['git', 'config', 'branch.master.gerritserver',
'https://chromium-review.googlesource.com'],), ''), 'https://chromium-review.googlesource.com'],), ''),
((['git', 'config', 'branch.master.gerritpatchset', '7'],), ''), ((['git', 'config', 'branch.master.gerritpatchset', '7'],), ''),
...@@ -1718,42 +1750,39 @@ class TestGitCl(TestCase): ...@@ -1718,42 +1750,39 @@ class TestGitCl(TestCase):
self.assertEqual(git_cl.main(['patch', '123456']), 0) self.assertEqual(git_cl.main(['patch', '123456']), 0)
def test_patch_force_codereview(self): def test_patch_force_codereview(self):
self._patch_common(is_gerrit=True, force_codereview=True) self._patch_common(is_gerrit=True, force_codereview=True,
git_short_host='host', detect_gerrit_server=True)
self.calls += [ self.calls += [
((['git', 'fetch', 'https://chromium.googlesource.com/my/repo', ((['git', 'fetch', 'https://host.googlesource.com/my/repo',
'refs/changes/56/123456/7'],), ''), 'refs/changes/56/123456/7'],), ''),
((['git', 'cherry-pick', 'FETCH_HEAD'],), ''), ((['git', 'cherry-pick', 'FETCH_HEAD'],), ''),
((['git', 'symbolic-ref', 'HEAD'],), 'master'),
((['git', 'config', 'branch.master.gerritissue', '123456'],), ((['git', 'config', 'branch.master.gerritissue', '123456'],),
''), ''),
((['git', 'config', 'branch.master.gerritserver'],), ''),
((['git', 'config', 'branch.master.merge'],), 'master'),
((['git', 'config', 'branch.master.remote'],), 'origin'),
((['git', 'config', 'remote.origin.url'],),
'https://chromium.googlesource.com/my/repo'),
((['git', 'config', 'branch.master.gerritserver', ((['git', 'config', 'branch.master.gerritserver',
'https://chromium-review.googlesource.com'],), ''), 'https://host-review.googlesource.com'],), ''),
((['git', 'config', 'branch.master.gerritpatchset', '7'],), ''), ((['git', 'config', 'branch.master.gerritpatchset', '7'],), ''),
] ]
self.assertEqual(git_cl.main(['patch', '--gerrit', '123456']), 0) self.assertEqual(git_cl.main(['patch', '--gerrit', '123456']), 0)
def test_gerrit_patch_url_successful(self): def test_gerrit_patch_url_successful(self):
self._patch_common(is_gerrit=True) self._patch_common(is_gerrit=True, git_short_host='else',
detect_gerrit_server=False)
self.calls += [ self.calls += [
((['git', 'fetch', 'https://chromium.googlesource.com/my/repo', ((['git', 'fetch', 'https://else.googlesource.com/my/repo',
'refs/changes/56/123456/1'],), ''), 'refs/changes/56/123456/1'],), ''),
((['git', 'cherry-pick', 'FETCH_HEAD'],), ''), ((['git', 'cherry-pick', 'FETCH_HEAD'],), ''),
((['git', 'config', 'branch.master.gerritissue', '123456'],), ((['git', 'config', 'branch.master.gerritissue', '123456'],),
''), ''),
((['git', 'config', 'branch.master.gerritserver', ((['git', 'config', 'branch.master.gerritserver',
'https://chromium-review.googlesource.com'],), ''), 'https://else-review.googlesource.com'],), ''),
((['git', 'config', 'branch.master.gerritpatchset', '1'],), ''), ((['git', 'config', 'branch.master.gerritpatchset', '1'],), ''),
] ]
self.assertEqual(git_cl.main( self.assertEqual(git_cl.main(
['patch', 'https://chromium-review.googlesource.com/#/c/123456/1']), 0) ['patch', 'https://else-review.googlesource.com/#/c/123456/1']), 0)
def test_gerrit_patch_conflict(self): def test_gerrit_patch_conflict(self):
self._patch_common(is_gerrit=True) self._patch_common(is_gerrit=True, detect_gerrit_server=False,
git_short_host='chromium')
self.calls += [ self.calls += [
((['git', 'fetch', 'https://chromium.googlesource.com/my/repo', ((['git', 'fetch', 'https://chromium.googlesource.com/my/repo',
'refs/changes/56/123456/1'],), ''), 'refs/changes/56/123456/1'],), ''),
...@@ -2012,8 +2041,22 @@ class TestGitCl(TestCase): ...@@ -2012,8 +2041,22 @@ class TestGitCl(TestCase):
def test_description_gerrit(self): def test_description_gerrit(self):
out = StringIO.StringIO() out = StringIO.StringIO()
self.mock(git_cl.sys, 'stdout', out) self.mock(git_cl.sys, 'stdout', out)
self.mock(git_cl.Changelist, 'GetDescription', lambda *args: 'foobar') self.calls = [
((['git', 'symbolic-ref', 'HEAD'],), 'master'),
((['git', 'config', 'branch.master.gerritserver'],), CERR1),
((['git', 'config', 'branch.master.merge'],), 'refs/heads/master'),
((['git', 'config', 'branch.master.remote'],), 'origin'),
((['git', 'config', 'remote.origin.url'],),
'https://git.review.org/repo.git'),
(('GetChangeDetail', 'git-review.review.org',
'123123', ['CURRENT_REVISION', 'CURRENT_COMMIT']),
{
'current_revision': 'sha1',
'revisions': {'sha1': {
'commit': {'message': 'foobar'},
}},
}),
]
self.assertEqual(0, git_cl.main([ self.assertEqual(0, git_cl.main([
'description', 'https://code.review.org/123123', '-d', '--gerrit'])) 'description', 'https://code.review.org/123123', '-d', '--gerrit']))
self.assertEqual('foobar\n', out.getvalue()) self.assertEqual('foobar\n', out.getvalue())
...@@ -2235,20 +2278,14 @@ class TestGitCl(TestCase): ...@@ -2235,20 +2278,14 @@ class TestGitCl(TestCase):
self.mock(git_cl._GerritChangelistImpl, 'SetCQState', self.mock(git_cl._GerritChangelistImpl, 'SetCQState',
lambda _, s: self._mocked_call(['SetCQState', s])) lambda _, s: self._mocked_call(['SetCQState', s]))
def _GetChangeDetail(gerrit_change_list_impl, opts=None):
# Get realistic expectations.
gerrit_change_list_impl._GetGerritHost()
return self._mocked_call(['_GetChangeDetail', opts or []])
self.mock(git_cl._GerritChangelistImpl, '_GetChangeDetail',
_GetChangeDetail)
self.calls = [ self.calls = [
((['git', 'symbolic-ref', 'HEAD'],), 'feature'), ((['git', 'symbolic-ref', 'HEAD'],), 'feature'),
((['git', 'config', 'branch.feature.rietveldissue'],), CERR1), ((['git', 'config', 'branch.feature.rietveldissue'],), CERR1),
((['git', 'config', 'branch.feature.gerritissue'],), '123456'), ((['git', 'config', 'branch.feature.gerritissue'],), '123456'),
((['git', 'config', 'branch.feature.gerritserver'],), ((['git', 'config', 'branch.feature.gerritserver'],),
'https://chromium-review.googlesource.com'), 'https://chromium-review.googlesource.com'),
((['_GetChangeDetail', []],), {'status': 'OPEN'}), (('GetChangeDetail', 'chromium-review.googlesource.com', '123456', []),
{ 'status': 'OPEN' }),
((['git', 'config', 'branch.feature.merge'],), 'feature'), ((['git', 'config', 'branch.feature.merge'],), 'feature'),
((['git', 'config', 'branch.feature.remote'],), 'origin'), ((['git', 'config', 'branch.feature.remote'],), 'origin'),
((['get_or_create_merge_base', 'feature', 'feature'],), ((['get_or_create_merge_base', 'feature', 'feature'],),
...@@ -2333,23 +2370,19 @@ class TestGitCl(TestCase): ...@@ -2333,23 +2370,19 @@ class TestGitCl(TestCase):
self.mock(git_cl.Changelist, 'GetMostRecentPatchset', lambda _: 7) self.mock(git_cl.Changelist, 'GetMostRecentPatchset', lambda _: 7)
self.mock(git_cl.uuid, 'uuid4', lambda: 'uuid4') self.mock(git_cl.uuid, 'uuid4', lambda: 'uuid4')
def _GetChangeDetail(gerrit_change_list_impl, opts=None):
# Get realistic expectations.
gerrit_change_list_impl._GetGerritHost()
return self._mocked_call(['_GetChangeDetail', opts or []])
self.mock(git_cl._GerritChangelistImpl, '_GetChangeDetail',
_GetChangeDetail)
self.calls = [ self.calls = [
((['git', 'symbolic-ref', 'HEAD'],), 'feature'), ((['git', 'symbolic-ref', 'HEAD'],), 'feature'),
((['git', 'config', 'branch.feature.rietveldissue'],), CERR1), ((['git', 'config', 'branch.feature.rietveldissue'],), CERR1),
((['git', 'config', 'branch.feature.gerritissue'],), '123456'), ((['git', 'config', 'branch.feature.gerritissue'],), '123456'),
((['git', 'config', 'branch.feature.gerritserver'],), ((['git', 'config', 'branch.feature.gerritserver'],),
'https://chromium-review.googlesource.com'), 'https://chromium-review.googlesource.com'),
((['_GetChangeDetail', []],), {'status': 'OPEN'}), (('GetChangeDetail', 'chromium-review.googlesource.com', '123456', []),
((['_GetChangeDetail', ['DETAILED_ACCOUNTS']],), { 'status': 'OPEN' }),
(('GetChangeDetail', 'chromium-review.googlesource.com', '123456',
['DETAILED_ACCOUNTS']),
{'owner': {'email': 'owner@e.mail'}}), {'owner': {'email': 'owner@e.mail'}}),
((['_GetChangeDetail', ['ALL_REVISIONS']],), { (('GetChangeDetail', 'chromium-review.googlesource.com', '123456',
['ALL_REVISIONS']), {
'project': 'depot_tools', 'project': 'depot_tools',
'revisions': { 'revisions': {
'deadbeaf': { 'deadbeaf': {
...@@ -2715,14 +2748,11 @@ class TestGitCl(TestCase): ...@@ -2715,14 +2748,11 @@ class TestGitCl(TestCase):
def _mock_gerrit_changes_for_detail_cache(self): def _mock_gerrit_changes_for_detail_cache(self):
self.mock(git_cl._GerritChangelistImpl, '_GetGerritHost', lambda _: 'host') self.mock(git_cl._GerritChangelistImpl, '_GetGerritHost', lambda _: 'host')
self.mock(git_cl.gerrit_util, 'GetChangeDetail',
lambda _, issue, options, **__:
self._mocked_call('RPC', issue, options))
def test_gerrit_change_detail_cache_normalize(self): def test_gerrit_change_detail_cache_normalize(self):
self._mock_gerrit_changes_for_detail_cache() self._mock_gerrit_changes_for_detail_cache()
self.calls = [ self.calls = [
(('RPC', '2', ['CASE']), 'b'), (('GetChangeDetail', 'host', '2', ['CASE']), 'b'),
] ]
cl = git_cl.Changelist(codereview='gerrit') cl = git_cl.Changelist(codereview='gerrit')
self.assertEqual(cl._GetChangeDetail(issue=2, options=['CaSe']), 'b') self.assertEqual(cl._GetChangeDetail(issue=2, options=['CaSe']), 'b')
...@@ -2733,9 +2763,9 @@ class TestGitCl(TestCase): ...@@ -2733,9 +2763,9 @@ class TestGitCl(TestCase):
def test_gerrit_change_detail_cache_simple(self): def test_gerrit_change_detail_cache_simple(self):
self._mock_gerrit_changes_for_detail_cache() self._mock_gerrit_changes_for_detail_cache()
self.calls = [ self.calls = [
(('RPC', '1', []), 'a'), (('GetChangeDetail', 'host', '1', []), 'a'),
(('RPC', '2', []), 'b'), (('GetChangeDetail', 'host', '2', []), 'b'),
(('RPC', '2', []), 'b2'), (('GetChangeDetail', 'host', '2', []), 'b2'),
] ]
cl = git_cl.Changelist(issue=1, codereview='gerrit') cl = git_cl.Changelist(issue=1, codereview='gerrit')
self.assertEqual(cl._GetChangeDetail(), 'a') # Miss. self.assertEqual(cl._GetChangeDetail(), 'a') # Miss.
...@@ -2748,10 +2778,10 @@ class TestGitCl(TestCase): ...@@ -2748,10 +2778,10 @@ class TestGitCl(TestCase):
def test_gerrit_change_detail_cache_options(self): def test_gerrit_change_detail_cache_options(self):
self._mock_gerrit_changes_for_detail_cache() self._mock_gerrit_changes_for_detail_cache()
self.calls = [ self.calls = [
(('RPC', '1', ['C', 'A', 'B']), 'cab'), (('GetChangeDetail', 'host', '1', ['C', 'A', 'B']), 'cab'),
(('RPC', '1', ['A', 'D']), 'ad'), (('GetChangeDetail', 'host', '1', ['A', 'D']), 'ad'),
(('RPC', '1', ['A']), 'a'), # no_cache=True (('GetChangeDetail', 'host', '1', ['A']), 'a'), # no_cache=True
(('RPC', '1', ['B']), 'b'), # no longer in cache. (('GetChangeDetail', 'host', '1', ['B']), 'b'), # no longer in cache.
] ]
cl = git_cl.Changelist(issue=1, codereview='gerrit') cl = git_cl.Changelist(issue=1, codereview='gerrit')
self.assertEqual(cl._GetChangeDetail(options=['C', 'A', 'B']), 'cab') self.assertEqual(cl._GetChangeDetail(options=['C', 'A', 'B']), 'cab')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment