Commit 3bbd43d8 authored by Edward Lesmes's avatar Edward Lesmes Committed by LUCI CQ

owners: Set correct branch to compute diff.

We have to use refs/remotes/origin/foo instead of refs/heads/foo,
as refs/heads/foo might not be defined.

https://logs.chromium.org/logs/infra-internal/buildbucket/cr-buildbucket.appspot.com/8853851694141987488/+/u/build/git_cl_upload/stdout

Change-Id: Ic729510d7beca63c25ea84394758cb62f76c572f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2729615
Auto-Submit: Edward Lesmes <ehmaldonado@chromium.org>
Commit-Queue: Josip Sokcevic <sokcevic@google.com>
Reviewed-by: 's avatarJosip Sokcevic <sokcevic@google.com>
parent 6ac4a15e
......@@ -176,9 +176,12 @@ class DepotToolsClient(OwnersClient):
self._db.override_files = self._GetOriginalOwnersFiles()
def _GetOriginalOwnersFiles(self):
remote, _ = scm.GIT.FetchUpstreamTuple(self._root)
branch = ''.join(scm.GIT.RefToRemoteRef(self._branch, remote))
return {
f: scm.GIT.GetOldContents(self._root, f, self._branch).splitlines()
for _, f in scm.GIT.CaptureStatus(self._root, self._branch)
f: scm.GIT.GetOldContents(self._root, f, branch).splitlines()
for _, f in scm.GIT.CaptureStatus(self._root, branch)
if os.path.basename(f) == 'OWNERS'
}
......
......@@ -42,17 +42,27 @@ class DepotToolsClientTest(unittest.TestCase):
})
self.root = '/'
self.fopen = self.repo.open_for_reading
mock.patch(
'owners_client.DepotToolsClient._GetOriginalOwnersFiles',
return_value={}).start()
self.addCleanup(mock.patch.stopall)
self.client = owners_client.DepotToolsClient(
'/', 'branch', self.fopen, self.repo)
'/', 'refs/heads/main', self.fopen, self.repo)
@mock.patch('scm.GIT.CaptureStatus')
@mock.patch('scm.GIT.GetOldContents')
@mock.patch('scm.GIT.FetchUpstreamTuple')
def testListOwners(
self, mockFetchUpstreamTuple, mockGetOldContents, mockCaptureStatus):
mockFetchUpstreamTuple.return_value = ('remote', 'refs/heads/blah')
mockGetOldContents.side_effect = lambda r, f, _b: self.repo.files[r + f]
mockCaptureStatus.return_value = [
('M', 'bar/everyone/foo.txt'),
('M', 'OWNERS'),
]
def testListOwners(self):
self.assertEqual(
['*', 'missing@example.com'],
self.client.ListOwners('bar/everyone/foo.txt'))
mockCaptureStatus.assert_called_once_with(
'/', 'refs/remotes/remote/main')
class GerritClientTest(unittest.TestCase):
......
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