diff options
author | Zuul <zuul@review.opendev.org> | 2020-05-07 16:23:00 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2020-05-07 16:23:00 +0000 |
commit | 42ff349bd233226efd1bb92777747eda95aeb534 (patch) | |
tree | fd65cb9f7602230ed84c581e6256b24185802c9d /tests | |
parent | 5996661ce0fb1238de33a2223a6eb916d516af8c (diff) | |
parent | 15ef181d269b5a01b825baf8b7b21f49cc7f58fa (diff) | |
download | zuul-42ff349bd233226efd1bb92777747eda95aeb534.tar.gz |
Merge "Make fake test Gerrit merger more realistic"
Diffstat (limited to 'tests')
-rw-r--r-- | tests/base.py | 7 | ||||
-rw-r--r-- | tests/fixtures/config/zuultrigger/project-change-merged/git/common-config/zuul.yaml | 4 | ||||
-rw-r--r-- | tests/unit/test_serial.py | 9 | ||||
-rw-r--r-- | tests/unit/test_zuultrigger.py | 6 |
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 |