def testDifferingCommitCount(self): change_a = change.Change((commit.Commit('chromium', 0), )) change_b = change.Change( (commit.Commit('chromium', 9), commit.Commit('another_repo', 'babe852'))) with self.assertRaises(commit.NonLinearError): change.Change.Midpoint(change_a, change_b)
def testDepsRollRight(self): change_a = change.Change( (commit.Commit('chromium', 4), commit.Commit('catapult', 4))) change_b = change.Change((commit.Commit('chromium', 5), )) expected = change.Change( (commit.Commit('chromium', 4), commit.Commit('catapult', 6))) self.assertEqual(change.Change.Midpoint(change_a, change_b), expected)
def testDifferingPatch(self): change_a = change.Change((commit.Commit('chromium', '0e57e2b'),)) change_b = change.Change( (commit.Commit('chromium', 'babe852'),), patch=patch.GerritPatch('https://codereview.com', 672011, '2f0d5c7')) with self.assertRaises(commit.NonLinearError): change.Change.Midpoint(change_a, change_b)
def testAdjacentWithDepsRollAndDepAlreadyOverridden(self): change_a = change.Change((commit.Commit('chromium', 4), )) change_b = change.Change( (commit.Commit('chromium', 5), commit.Commit('catapult', 4))) expected = change.Change( (commit.Commit('chromium', 4), commit.Commit('catapult', 2))) self.assertEqual(change.Change.Midpoint(change_a, change_b), expected)
def testDifferingPatch(self): change_a = change.Change((commit.Commit('chromium', '0e57e2b'), )) change_b = change.Change( (commit.Commit('chromium', 'babe852'), ), patch=patch.Patch('https://codereview.chromium.org', 2565263002, 20001)) with self.assertRaises(commit.NonLinearError): change.Change.Midpoint(change_a, change_b)
def testUpdate(self): old_commit = commit.Commit('chromium', 'aaaaaaaa') dep_a = commit.Commit('catapult', 'e0a2efbb') change_a = change.Change((old_commit, dep_a)) new_commit = commit.Commit('chromium', 'bbbbbbbb') dep_b = commit.Commit('another_repo', 'e0a2efbb') p = patch.GerritPatch('https://codereview.com', 672011, '2f0d5c7') change_b = change.Change((dep_b, new_commit), p) expected = change.Change((new_commit, dep_a, dep_b), p) self.assertEqual(change_a.Update(change_b), expected)
def testUpdate(self): old_commit = commit.Commit('chromium', 'aaaaaaaa') dep_a = commit.Commit('catapult', 'e0a2efbb') change_a = change.Change((old_commit, dep_a)) new_commit = commit.Commit('chromium', 'bbbbbbbb') dep_b = commit.Commit('another_repo', 'e0a2efbb') change_b = change.Change((dep_b, new_commit), patch_test.Patch()) expected = change.Change((new_commit, dep_a, dep_b), patch_test.Patch()) self.assertEqual(change_a.Update(change_b), expected)
def testAsDict(self, commit_as_dict, patch_as_dict): commit_as_dict.side_effect = ({ 'git_hash': 'aaa7336c82' }, { 'git_hash': 'e0a2efbb3d' }) patch_as_dict.return_value = {'revision': '2f0d5c7'} commits = (commit.Commit('chromium', 'aaa7336c82'), commit.Commit('catapult', 'e0a2efbb3d')) p = patch.GerritPatch('https://codereview.com', 672011, '2f0d5c7') c = change.Change(commits, p) expected = { 'commits': [ { 'git_hash': 'aaa7336c82' }, { 'git_hash': 'e0a2efbb3d' }, ], 'patch': { 'revision': '2f0d5c7' }, } self.assertEqual(c.AsDict(), expected)
def testUpdateWithMultiplePatches(self): base_commit = commit.Commit('chromium', 'aaa7336c821888839f759c6c0a36b56c') p = patch.GerritPatch('https://codereview.com', 672011, '2f0d5c7') c = change.Change((base_commit, ), p) with self.assertRaises(NotImplementedError): c.Update(c)
def testFromDictWithJustOneCommit(self, _): c = change.Change.FromDict({ 'commits': [{'repository': 'chromium', 'git_hash': 'aaa7336'}], }) expected = change.Change((commit.Commit('chromium', 'aaa7336'),)) self.assertEqual(c, expected)
def testAsDict(self): commits = (commit.Commit('chromium', 'aaa7336c82'), commit.Commit('catapult', 'e0a2efbb3d')) p = patch.Patch('https://codereview.chromium.org', 2565263002, 20001) c = change.Change(commits, p) expected = { 'commits': [ { 'repository': 'chromium', 'git_hash': 'aaa7336c82', 'url': _CHROMIUM_URL + '/+/aaa7336c82', }, { 'repository': 'catapult', 'git_hash': 'e0a2efbb3d', 'url': _CATAPULT_URL + '/+/e0a2efbb3d', }, ], 'patch': { 'server': 'https://codereview.chromium.org', 'issue': 2565263002, 'patchset': 20001, }, } self.assertEqual(c.AsDict(), expected)
def testAsDict(self): commits = (commit.Commit('chromium', 'aaa7336c82'), commit.Commit('catapult', 'e0a2efbb3d')) p = patch.GerritPatch('https://codereview.com', 672011, '2f0d5c7') c = change.Change(commits, p) expected = { 'commits': [ { 'repository': 'chromium', 'git_hash': 'aaa7336c82', 'url': _CHROMIUM_URL + '/+/aaa7336c82', }, { 'repository': 'catapult', 'git_hash': 'e0a2efbb3d', 'url': _CATAPULT_URL + '/+/e0a2efbb3d', }, ], 'patch': { 'server': 'https://codereview.com', 'change': 672011, 'revision': '2f0d5c7', }, } self.assertEqual(c.AsDict(), expected)
def testFromDictWithAllFields(self, get_change): get_change.return_value = { 'id': 'repo~branch~id', 'revisions': { '2f0d5c7': {} } } c = change.Change.FromDict({ 'commits': ( { 'repository': 'chromium', 'git_hash': 'aaa7336' }, { 'repository': 'catapult', 'git_hash': 'e0a2efb' }, ), 'patch': { 'server': 'https://codereview.com', 'change': 672011, 'revision': '2f0d5c7', }, }) commits = (commit.Commit('chromium', 'aaa7336'), commit.Commit('catapult', 'e0a2efb')) p = patch.GerritPatch('https://codereview.com', 'repo~branch~id', '2f0d5c7') expected = change.Change(commits, p) self.assertEqual(c, expected)
def _CreateJob( self, hash1, hash2, comparison_mode, created, bug_id, exception=None): old_commit = commit.Commit('chromium', hash1) change_a = change_module.Change((old_commit,)) old_commit = commit.Commit('chromium', hash2) change_b = change_module.Change((old_commit,)) job = job_module.Job.New( (_QuestStub(),), (change_a, change_b), comparison_mode=comparison_mode, bug_id=bug_id) job.created = created job.exception = exception job.state.ScheduleWork() job.state.Explore() job.put()
def Change(chromium=None, catapult=None, another_repo=None, patch=False): commits = [] if chromium is not None: commits.append(commit_test.Commit(chromium)) if catapult is not None: commits.append(commit_test.Commit(catapult, repository='catapult')) if another_repo is not None: commits.append( commit_test.Commit(another_repo, repository='another_repo')) return change.Change(commits, patch=patch_test.Patch() if patch else None)
def testChange(self): base_commit = commit.Commit('chromium', 'aaa7336c821888839f759c6c0a36b56c') dep = commit.Commit('catapult', 'e0a2efbb3d1a81aac3c90041eefec24f066d26ba') p = patch.GerritPatch('https://codereview.com', 672011, '2f0d5c7') # Also test the deps conversion to frozenset. c = change.Change([base_commit, dep], p) self.assertEqual(c, change.Change((base_commit, dep), p)) string = 'chromium@aaa7336 catapult@e0a2efb + 2f0d5c7' id_string = ('catapult@e0a2efbb3d1a81aac3c90041eefec24f066d26ba ' 'chromium@aaa7336c821888839f759c6c0a36b56c + ' 'https://codereview.com/672011/2f0d5c7') self.assertEqual(str(c), string) self.assertEqual(c.id_string, id_string) self.assertEqual(c.base_commit, base_commit) self.assertEqual(c.last_commit, dep) self.assertEqual(c.deps, (dep,)) self.assertEqual(c.commits, (base_commit, dep)) self.assertEqual(c.patch, p)
def testChange(self): base_commit = commit.Commit('chromium', 'aaa7336c821888839f759c6c0a36b56c') dep = commit.Commit('catapult', 'e0a2efbb3d1a81aac3c90041eefec24f066d26ba') # Also test the deps conversion to tuple. c = change.Change([base_commit, dep], patch_test.Patch()) self.assertEqual(c, change.Change((base_commit, dep), patch_test.Patch())) string = 'chromium@aaa7336 catapult@e0a2efb + abc123' id_string = ('catapult@e0a2efbb3d1a81aac3c90041eefec24f066d26ba ' 'chromium@aaa7336c821888839f759c6c0a36b56c + ' 'https://codereview.com/repo~branch~id/abc123') self.assertEqual(str(c), string) self.assertEqual(c.id_string, id_string) self.assertEqual(c.base_commit, base_commit) self.assertEqual(c.last_commit, dep) self.assertEqual(c.deps, (dep, )) self.assertEqual(c.commits, (base_commit, dep)) self.assertEqual(c.patch, patch_test.Patch())
def testChange(self): base_commit = commit.Commit('chromium', 'aaa7336c821888839f759c6c0a36b56c') dep = commit.Commit('catapult', 'e0a2efbb3d1a81aac3c90041eefec24f066d26ba') p = patch.Patch('https://codereview.chromium.org', 2565263002, 20001) # Also test the deps conversion to frozenset. c = change.Change([base_commit, dep], p) self.assertEqual(c, change.Change((base_commit, dep), p)) string = ('chromium@aaa7336 catapult@e0a2efb + ' 'https://codereview.chromium.org/2565263002/20001') id_string = ('chromium@aaa7336c821888839f759c6c0a36b56c ' 'catapult@e0a2efbb3d1a81aac3c90041eefec24f066d26ba + ' 'https://codereview.chromium.org/2565263002/20001') self.assertEqual(str(c), string) self.assertEqual(c.id_string, id_string) self.assertEqual(c.base_commit, base_commit) self.assertEqual(c.last_commit, dep) self.assertEqual(c.deps, (dep, )) self.assertEqual(c.commits, (base_commit, dep)) self.assertEqual(c.patch, p)
def testFromDictWithAllFields(self, _): c = change.Change.FromDict({ 'commits': ( { 'repository': 'chromium', 'git_hash': 'aaa7336' }, { 'repository': 'catapult', 'git_hash': 'e0a2efb' }, ), 'patch': { 'server': 'https://codereview.chromium.org', 'issue': 2565263002, 'patchset': 20001, }, }) commits = (commit.Commit('chromium', 'aaa7336'), commit.Commit('catapult', 'e0a2efb')) p = patch.Patch('https://codereview.chromium.org', 2565263002, 20001) expected = change.Change(commits, p) self.assertEqual(c, expected)
def testNotAdjacent(self): change_a = change.Change((commit.Commit('chromium', 0), )) change_b = change.Change((commit.Commit('chromium', 9), )) self.assertEqual(change.Change.Midpoint(change_a, change_b), change.Change((commit.Commit('chromium', 4), )))
def testAdjacentWithNoDepsRoll(self): change_a = change.Change((commit.Commit('chromium', 0), )) change_b = change.Change((commit.Commit('chromium', 1), )) with self.assertRaises(commit.NonLinearError): change.Change.Midpoint(change_a, change_b)
def testSameChange(self): change_a = change.Change((commit.Commit('chromium', 0), )) change_b = change.Change((commit.Commit('chromium', 0), )) with self.assertRaises(commit.NonLinearError): change.Change.Midpoint(change_a, change_b)
def testDifferingRepository(self): change_a = change.Change((commit.Commit('chromium', '0e57e2b'), )) change_b = change.Change((commit.Commit('another_repo', 'babe852'), )) with self.assertRaises(commit.NonLinearError): change.Change.Midpoint(change_a, change_b)