summaryrefslogtreecommitdiff
path: root/tests/base.py
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2017-08-03 22:16:09 +0000
committerGerrit Code Review <review@openstack.org>2017-08-03 22:16:09 +0000
commitb1439a554fb9b1922e411e6a71f9fed42baf2fee (patch)
tree04ac99122b4898f0f77a0e71c466c97750bee1ef /tests/base.py
parent66ed17def4a607372ce8454b12dc50372d23bdd4 (diff)
parent289f5930facc76a9d5f3328a3c0a11be59eca596 (diff)
downloadzuul-b1439a554fb9b1922e411e6a71f9fed42baf2fee.tar.gz
Merge "Ensure ref-updated jobs run with their ref" into feature/zuulv3
Diffstat (limited to 'tests/base.py')
-rwxr-xr-xtests/base.py29
1 files changed, 19 insertions, 10 deletions
diff --git a/tests/base.py b/tests/base.py
index f13762379..4b06c2883 100755
--- a/tests/base.py
+++ b/tests/base.py
@@ -139,7 +139,8 @@ class FakeGerritChange(object):
'Verified': ('Verified', -2, 2)}
def __init__(self, gerrit, number, project, branch, subject,
- status='NEW', upstream_root=None, files={}):
+ status='NEW', upstream_root=None, files={},
+ parent=None):
self.gerrit = gerrit
self.source = gerrit
self.reported = 0
@@ -174,16 +175,18 @@ class FakeGerritChange(object):
'url': 'https://hostname/%s' % number}
self.upstream_root = upstream_root
- self.addPatchset(files=files)
+ self.addPatchset(files=files, parent=parent)
self.data['submitRecords'] = self.getSubmitRecords()
self.open = status == 'NEW'
- def addFakeChangeToRepo(self, msg, files, large):
+ def addFakeChangeToRepo(self, msg, files, large, parent):
path = os.path.join(self.upstream_root, self.project)
repo = git.Repo(path)
+ if parent is None:
+ parent = 'refs/tags/init'
ref = GerritChangeReference.create(
repo, '1/%s/%s' % (self.number, self.latest_patchset),
- 'refs/tags/init')
+ parent)
repo.head.reference = ref
zuul.merger.merger.reset_repo_to_head(repo)
repo.git.clean('-x', '-f', '-d')
@@ -211,7 +214,7 @@ class FakeGerritChange(object):
repo.heads['master'].checkout()
return r
- def addPatchset(self, files=None, large=False):
+ def addPatchset(self, files=None, large=False, parent=None):
self.latest_patchset += 1
if not files:
fn = '%s-%s' % (self.branch.replace('/', '_'), self.number)
@@ -219,7 +222,7 @@ class FakeGerritChange(object):
(self.branch, self.number, self.latest_patchset))
files = {fn: data}
msg = self.subject + '-' + str(self.latest_patchset)
- c = self.addFakeChangeToRepo(msg, files, large)
+ c = self.addFakeChangeToRepo(msg, files, large, parent)
ps_files = [{'file': '/COMMIT_MSG',
'type': 'ADDED'},
{'file': 'README',
@@ -469,12 +472,12 @@ class FakeGerritConnection(gerritconnection.GerritConnection):
self.upstream_root = upstream_root
def addFakeChange(self, project, branch, subject, status='NEW',
- files=None):
+ files=None, parent=None):
"""Add a change to the fake Gerrit."""
self.change_number += 1
c = FakeGerritChange(self, self.change_number, project, branch,
subject, upstream_root=self.upstream_root,
- status=status, files=files)
+ status=status, files=files, parent=parent)
self.changes[self.change_number] = c
return c
@@ -955,6 +958,13 @@ class FakeGithubPullRequest(object):
}
return (name, data)
+ def setMerged(self, commit_message):
+ self.is_merged = True
+ self.merge_message = commit_message
+
+ repo = self._getRepo()
+ repo.heads[self.branch].commit = repo.commit(self.head_sha)
+
class FakeGithubConnection(githubconnection.GithubConnection):
log = logging.getLogger("zuul.test.FakeGithubConnection")
@@ -1102,8 +1112,7 @@ class FakeGithubConnection(githubconnection.GithubConnection):
self.merge_not_allowed_count -= 1
raise MergeFailure('Merge was not successful due to mergeability'
' conflict')
- pull_request.is_merged = True
- pull_request.merge_message = commit_message
+ pull_request.setMerged(commit_message)
def setCommitStatus(self, project, sha, state, url='', description='',
context='default', user='zuul'):