summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2020-05-07 16:23:00 +0000
committerGerrit Code Review <review@openstack.org>2020-05-07 16:23:00 +0000
commit42ff349bd233226efd1bb92777747eda95aeb534 (patch)
treefd65cb9f7602230ed84c581e6256b24185802c9d
parent5996661ce0fb1238de33a2223a6eb916d516af8c (diff)
parent15ef181d269b5a01b825baf8b7b21f49cc7f58fa (diff)
downloadzuul-42ff349bd233226efd1bb92777747eda95aeb534.tar.gz
Merge "Make fake test Gerrit merger more realistic"
-rw-r--r--tests/base.py7
-rw-r--r--tests/fixtures/config/zuultrigger/project-change-merged/git/common-config/zuul.yaml4
-rw-r--r--tests/unit/test_serial.py9
-rw-r--r--tests/unit/test_zuultrigger.py6
4 files changed, 16 insertions, 10 deletions
diff --git a/tests/base.py b/tests/base.py
index cd8c0c780..4a4e536a3 100644
--- a/tests/base.py
+++ b/tests/base.py
@@ -638,8 +638,11 @@ class FakeGerritChange(object):
path = os.path.join(self.upstream_root, self.project)
repo = git.Repo(path)
- repo.heads[self.branch].commit = \
- repo.commit(self.patchsets[-1]['revision'])
+
+ repo.head.reference = self.branch
+ zuul.merger.merger.reset_repo_to_head(repo)
+ repo.git.merge('-s', 'resolve', self.patchsets[-1]['ref'])
+ repo.heads[self.branch].commit = repo.head.commit
def setReported(self):
self.reported += 1
diff --git a/tests/fixtures/config/zuultrigger/project-change-merged/git/common-config/zuul.yaml b/tests/fixtures/config/zuultrigger/project-change-merged/git/common-config/zuul.yaml
index 045e0a988..77a96c25b 100644
--- a/tests/fixtures/config/zuultrigger/project-change-merged/git/common-config/zuul.yaml
+++ b/tests/fixtures/config/zuultrigger/project-change-merged/git/common-config/zuul.yaml
@@ -36,6 +36,10 @@
name: merge-check
manager: independent
ignore-dependencies: true
+ reject:
+ gerrit:
+ approval:
+ - Verified: -1
trigger:
zuul:
- event: project-change-merged
diff --git a/tests/unit/test_serial.py b/tests/unit/test_serial.py
index 458d860db..f91bb4eda 100644
--- a/tests/unit/test_serial.py
+++ b/tests/unit/test_serial.py
@@ -26,14 +26,7 @@ class TestSerial(ZuulTestCase):
A.setMerged()
self.fake_gerrit.addEvent(A.getChangeMergedEvent())
self.waitUntilSettled()
- # The gerrit upstream repo simulation isn't perfect -- when
- # change A is merged above, the master ref is updated to point
- # to that change, it doesn't actually "merge" it. The same is
- # true for B, so if it didn't have A in its git history, then
- # A would not appear in the jobs run for B. We simulate the
- # correct situation by setting A as the git parent of B.
- B = self.fake_gerrit.addFakeChange('org/project', 'master', 'B',
- parent='refs/changes/1/1/1')
+ B = self.fake_gerrit.addFakeChange('org/project', 'master', 'B')
B.setMerged()
self.fake_gerrit.addEvent(B.getChangeMergedEvent())
self.waitUntilSettled()
diff --git a/tests/unit/test_zuultrigger.py b/tests/unit/test_zuultrigger.py
index 80cb7387c..aeda12433 100644
--- a/tests/unit/test_zuultrigger.py
+++ b/tests/unit/test_zuultrigger.py
@@ -220,6 +220,12 @@ class TestZuulTriggerProjectChangeMerged(ZuulTestCase):
self.assertTrue("project:{org/project} status:open" in
self.fake_gerrit.queries)
+ # Ensure the gerrit driver has updated its cache after the
+ # previous comments were left:
+ self.fake_gerrit.addEvent(A.getChangeCommentEvent(2))
+ self.fake_gerrit.addEvent(B.getChangeCommentEvent(2))
+ self.waitUntilSettled()
+
# Reconfigure and run the test again. This is a regression
# check to make sure that we don't end up with a stale trigger
# cache that has references to projects from the old