Case sensitive label matching

After upgrading Gerrit to 2.13 our gate stopped working. The reason
for this is that after a successful gate run zuul does something like
'gerrit review --label verified=2 --submit'. The verified label in
Gerrit by default is configured as 'Verified'. The newer version of
gerrit behaves different now. It accepts the +2 vote on verified but
doesn't submit the patch anymore if the casing is not correct. This
forces us to specify the label in the same casing as gerrit
expects. In that case the tolower() in canMerge prevents the patch
from entering the gate.

In order to avoid confusion and be consistent, avoid any case
conversions and use the labels exactly as defined in Gerrit.

Note that this patch requires changes to the pipelines such that the
labels are spelled exactly as defined in Gerrit.

Change-Id: I9713a075e07b268e4f2620c0862c128158283c7c
This commit is contained in:
Tobias Henkel 2017-05-29 21:15:17 +02:00 committed by Tobias Henkel
parent 961bb1a876
commit ea98a194cc
80 changed files with 347 additions and 341 deletions

View File

@ -115,10 +115,10 @@ success, the pipeline reports back to Gerrit with a *Verified* vote of
- event: patchset-created - event: patchset-created
success: success:
my_gerrit: my_gerrit:
verified: 1 Verified: 1
failure: failure:
my_gerrit my_gerrit
verified: -1 Verified: -1
.. TODO: See TODO for more annotated examples of common pipeline configurations. .. TODO: See TODO for more annotated examples of common pipeline configurations.
@ -255,9 +255,9 @@ optional unless otherwise specified):
to match. Same format as "older-than". to match. Same format as "older-than".
Any other field is interpreted as a review category and value Any other field is interpreted as a review category and value
pair. For example ``verified: 1`` would require that the approval pair. For example ``Verified: 1`` would require that the approval
be for a +1 vote in the "Verified" column. The value may either be for a +1 vote in the "Verified" column. The value may either
be a single value or a list: ``verified: [1, 2]`` would match be a single value or a list: ``Verified: [1, 2]`` would match
either a +1 or +2 vote. either a +1 or +2 vote.
**open** **open**
@ -287,7 +287,7 @@ optional unless otherwise specified):
reject: reject:
approval: approval:
- code-review: [-1, -2] - Code-Review: [-1, -2]
**dequeue-on-new-patchset** **dequeue-on-new-patchset**
Normally, if a new patchset is uploaded to a change that is in a Normally, if a new patchset is uploaded to a change that is in a

View File

@ -6,10 +6,10 @@ pipelines:
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- name: tests - name: tests
manager: IndependentPipelineManager manager: IndependentPipelineManager
@ -19,10 +19,10 @@ pipelines:
email_filter: ^.*@example.org$ email_filter: ^.*@example.org$
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- name: post - name: post
manager: IndependentPipelineManager manager: IndependentPipelineManager
@ -38,16 +38,16 @@ pipelines:
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
jobs: jobs:
- name: ^.*-merge$ - name: ^.*-merge$

View File

@ -133,9 +133,19 @@ class GerritChangeReference(git.Reference):
class FakeGerritChange(object): class FakeGerritChange(object):
categories = {'approved': ('Approved', -1, 1), categories = {'Approved': ('Approved', -1, 1),
'code-review': ('Code-Review', -2, 2), 'Code-Review': ('Code-Review', -2, 2),
'verified': ('Verified', -2, 2)} 'Verified': ('Verified', -2, 2)}
# TODO(tobiash): This is used as a translation layer between the tests
# which use lower case labels. This can be removed if all
# tests are converted to use the correct casing.
categories_translation = {'approved': 'Approved',
'code-review': 'Code-Review',
'verified': 'Verified',
'Approved': 'Approved',
'Code-Review': 'Code-Review',
'Verified': 'Verified'}
def __init__(self, gerrit, number, project, branch, subject, def __init__(self, gerrit, number, project, branch, subject,
status='NEW', upstream_root=None, files={}): status='NEW', upstream_root=None, files={}):
@ -331,8 +341,8 @@ class FakeGerritChange(object):
if not granted_on: if not granted_on:
granted_on = time.time() granted_on = time.time()
approval = { approval = {
'description': self.categories[category][0], 'description': self.categories_translation[category],
'type': category, 'type': self.categories_translation[category],
'value': str(value), 'value': str(value),
'by': { 'by': {
'username': username, 'username': username,
@ -341,7 +351,8 @@ class FakeGerritChange(object):
'grantedOn': int(granted_on) 'grantedOn': int(granted_on)
} }
for i, x in enumerate(self.patchsets[-1]['approvals'][:]): for i, x in enumerate(self.patchsets[-1]['approvals'][:]):
if x['by']['username'] == username and x['type'] == category: if x['by']['username'] == username and \
x['type'] == self.categories_translation[category]:
del self.patchsets[-1]['approvals'][i] del self.patchsets[-1]['approvals'][i]
self.patchsets[-1]['approvals'].append(approval) self.patchsets[-1]['approvals'].append(approval)
event = {'approvals': [approval], event = {'approvals': [approval],

View File

@ -7,10 +7,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: gate name: gate
@ -20,17 +20,17 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- secret: - secret:

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- project: - project:
error: true error: true

View File

@ -7,10 +7,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: data-return name: data-return

View File

@ -6,17 +6,17 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- job: - job:

View File

@ -7,10 +7,10 @@
- event: change-restored - event: change-restored
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: dup2 name: dup2
@ -21,10 +21,10 @@
- event: change-restored - event: change-restored
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: project-test1 name: project-test1

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: project-test1 name: project-test1

View File

@ -6,7 +6,7 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: tenant-one-gate name: tenant-one-gate
@ -19,17 +19,17 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- pipeline: - pipeline:
@ -39,17 +39,17 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- code-review: 2 - Code-Review: 2
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- job: - job:

View File

@ -7,10 +7,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- nodeset: - nodeset:
name: nodeset1 name: nodeset1

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: gate name: gate
@ -19,17 +19,17 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- job: - job:

View File

@ -6,7 +6,7 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: python27 name: python27

View File

@ -6,17 +6,17 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- nodeset: - nodeset:

View File

@ -6,17 +6,17 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- nodeset: - nodeset:

View File

@ -7,10 +7,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: gate name: gate
@ -20,17 +20,17 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- job: - job:

View File

@ -7,10 +7,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: python27 name: python27

View File

@ -6,10 +6,10 @@
- event: comment-added - event: comment-added
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
require: require:
gerrit: gerrit:
approval: approval:
@ -25,10 +25,10 @@
- email: jenkins@example.com - email: jenkins@example.com
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: project1-job name: project1-job

View File

@ -6,10 +6,10 @@
- event: comment-added - event: comment-added
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
require: require:
gerrit: gerrit:
approval: approval:
@ -27,10 +27,10 @@
newer-than: 48h newer-than: 48h
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: project1-job name: project1-job

View File

@ -6,10 +6,10 @@
- event: comment-added - event: comment-added
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
require: require:
gerrit: gerrit:
approval: approval:
@ -27,10 +27,10 @@
older-than: 48h older-than: 48h
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: project1-job name: project1-job

View File

@ -10,10 +10,10 @@
- event: comment-added - event: comment-added
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: trigger name: trigger
@ -25,10 +25,10 @@
- username: jenkins - username: jenkins
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: project1-job name: project1-job

View File

@ -5,13 +5,13 @@
gerrit: gerrit:
approval: approval:
- username: jenkins - username: jenkins
verified: Verified:
- 1 - 1
- 2 - 2
reject: reject:
gerrit: gerrit:
approval: approval:
- verified: - Verified:
- -1 - -1
- -2 - -2
trigger: trigger:
@ -19,10 +19,10 @@
- event: comment-added - event: comment-added
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: trigger name: trigger
@ -32,19 +32,19 @@
- event: comment-added - event: comment-added
require-approval: require-approval:
- username: jenkins - username: jenkins
verified: Verified:
- 1 - 1
- 2 - 2
reject-approval: reject-approval:
- verified: - Verified:
- -1 - -1
- -2 - -2
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: project1-job name: project1-job

View File

@ -10,10 +10,10 @@
- event: comment-added - event: comment-added
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: open-check name: open-check
@ -27,10 +27,10 @@
- event: comment-added - event: comment-added
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: status-check name: status-check
@ -44,10 +44,10 @@
- event: comment-added - event: comment-added
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: project-job name: project-job

View File

@ -6,10 +6,10 @@
- event: comment-added - event: comment-added
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
require: require:
gerrit: gerrit:
approval: approval:
@ -25,10 +25,10 @@
- username: jenkins - username: jenkins
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: project1-job name: project1-job

View File

@ -5,16 +5,16 @@
gerrit: gerrit:
approval: approval:
- username: jenkins - username: jenkins
verified: 1 Verified: 1
trigger: trigger:
gerrit: gerrit:
- event: comment-added - event: comment-added
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: trigger name: trigger
@ -24,13 +24,13 @@
- event: comment-added - event: comment-added
require-approval: require-approval:
- username: jenkins - username: jenkins
verified: 1 Verified: 1
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: project1-job name: project1-job

View File

@ -5,7 +5,7 @@
gerrit: gerrit:
approval: approval:
- username: jenkins - username: jenkins
verified: Verified:
- 1 - 1
- 2 - 2
trigger: trigger:
@ -13,10 +13,10 @@
- event: comment-added - event: comment-added
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: trigger name: trigger
@ -26,15 +26,15 @@
- event: comment-added - event: comment-added
require-approval: require-approval:
- username: jenkins - username: jenkins
verified: Verified:
- 1 - 1
- 2 - 2
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: project1-job name: project1-job

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: tenant-one-gate name: tenant-one-gate
@ -19,17 +19,17 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- job: - job:

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
# TODOv3(jeblair, tobiash): make semaphore definitions required, which # TODOv3(jeblair, tobiash): make semaphore definitions required, which
# will cause these tests to fail until we define test-semaphore # will cause these tests to fail until we define test-semaphore

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: project-test1 name: project-test1

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: base name: base

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: gate name: gate
@ -19,17 +19,17 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- pipeline: - pipeline:

View File

@ -6,7 +6,7 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1

View File

@ -6,12 +6,12 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
resultsdb: resultsdb:
score: 1 score: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
resultsdb: resultsdb:
score: -1 score: -1
resultsdb_failures: resultsdb_failures:

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: python27 name: python27

View File

@ -9,12 +9,12 @@
to: alternative_me@example.com to: alternative_me@example.com
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
smtp: smtp:
to: alternative_me@example.com to: alternative_me@example.com
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: docs-draft-test name: docs-draft-test

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: gate name: gate
@ -19,17 +19,17 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- pipeline: - pipeline:

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: common-config-job name: common-config-job

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
review_gerrit: review_gerrit:
verified: 1 Verified: 1
failure: failure:
review_gerrit: review_gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: another_check name: another_check
@ -19,10 +19,10 @@
- event: patchset-created - event: patchset-created
success: success:
another_gerrit: another_gerrit:
verified: 1 Verified: 1
failure: failure:
another_gerrit: another_gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: common_check name: common_check
@ -34,14 +34,14 @@
- event: patchset-created - event: patchset-created
success: success:
review_gerrit: review_gerrit:
verified: 1 Verified: 1
another_gerrit: another_gerrit:
verified: 1 Verified: 1
failure: failure:
review_gerrit: review_gerrit:
verified: -1 Verified: -1
another_gerrit: another_gerrit:
verified: -1 Verified: -1
- job: - job:
name: project-test1 name: project-test1

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
review_gerrit: review_gerrit:
verified: 1 Verified: 1
failure: failure:
alt_voting_gerrit: alt_voting_gerrit:
verified: -1 Verified: -1
- job: - job:
name: project-test1 name: project-test1

View File

@ -4,7 +4,7 @@
require: require:
gerrit: gerrit:
approval: approval:
- verified: -1 - Verified: -1
trigger: trigger:
gerrit: gerrit:
- event: patchset-created - event: patchset-created
@ -13,10 +13,10 @@
pipeline: gate pipeline: gate
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: gate name: gate
@ -24,25 +24,25 @@
require: require:
gerrit: gerrit:
approval: approval:
- verified: 1 - Verified: 1
trigger: trigger:
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
zuul: zuul:
- event: parent-change-enqueued - event: parent-change-enqueued
pipeline: gate pipeline: gate
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- job: - job:

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: gate name: gate
@ -19,17 +19,17 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- pipeline: - pipeline:
@ -41,7 +41,7 @@
- event: project-change-merged - event: project-change-merged
merge-failure: merge-failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: project-check name: project-check

View File

@ -6,10 +6,10 @@ pipelines:
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- name: gate - name: gate
manager: DependentPipelineManager manager: DependentPipelineManager
@ -18,17 +18,17 @@ pipelines:
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
- name: post - name: post
manager: IndependentPipelineManager manager: IndependentPipelineManager

View File

@ -6,10 +6,10 @@ pipelines:
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- name: post - name: post
manager: IndependentPipelineManager manager: IndependentPipelineManager
@ -25,17 +25,17 @@ pipelines:
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
projects: projects:

View File

@ -6,10 +6,10 @@ pipelines:
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
disabled: disabled:
smtp: smtp:
to: you@example.com to: you@example.com

View File

@ -9,17 +9,17 @@ pipelines:
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
jobs: jobs:

View File

@ -6,7 +6,7 @@ pipelines:
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
projects: projects:
- name: projectA - name: projectA

View File

@ -4,16 +4,16 @@ pipelines:
require: require:
approval: approval:
- username: jenkins - username: jenkins
verified: 1 Verified: 1
trigger: trigger:
gerrit: gerrit:
- event: comment-added - event: comment-added
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- name: trigger - name: trigger
manager: IndependentPipelineManager manager: IndependentPipelineManager
@ -22,13 +22,13 @@ pipelines:
- event: comment-added - event: comment-added
require-approval: require-approval:
- username: jenkins - username: jenkins
verified: 1 Verified: 1
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
projects: projects:
- name: org/project1 - name: org/project1

View File

@ -9,13 +9,13 @@ pipelines:
to: you@example.com to: you@example.com
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
smtp: smtp:
to: alternative_me@example.com to: alternative_me@example.com
from: zuul_from@example.com from: zuul_from@example.com
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
projects: projects:
- name: org/project - name: org/project

View File

@ -11,10 +11,10 @@ pipelines:
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- name: post - name: post
manager: independent manager: independent
@ -34,17 +34,17 @@ pipelines:
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- name: unused - name: unused
@ -56,7 +56,7 @@ pipelines:
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
- name: dup1 - name: dup1
manager: independent manager: independent
@ -67,10 +67,10 @@ pipelines:
- event: change-restored - event: change-restored
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- name: dup2 - name: dup2
manager: independent manager: independent
@ -81,10 +81,10 @@ pipelines:
- event: change-restored - event: change-restored
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- name: conflict - name: conflict
manager: dependent manager: dependent
@ -95,17 +95,17 @@ pipelines:
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
- name: experimental - name: experimental
manager: independent manager: independent

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
disabled: disabled:
smtp: smtp:
to: you@example.com to: you@example.com

View File

@ -8,21 +8,21 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
smtp: smtp:
to: you@example.com to: you@example.com
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
smtp: smtp:
to: you@example.com to: you@example.com
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- job: - job:

View File

@ -7,10 +7,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: project1-merge name: project1-merge

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: project-test-irrelevant-starts-empty name: project-test-irrelevant-starts-empty

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: project-test-irrelevant-files name: project-test-irrelevant-files

View File

@ -6,17 +6,17 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- job: - job:

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: project-merge name: project-merge

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: project-merge name: project-merge

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: gate name: gate
@ -19,17 +19,17 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- job: - job:

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: post name: post
@ -28,22 +28,22 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
merge-failure: merge-failure:
gerrit: gerrit:
verified: -1 Verified: -1
smtp: smtp:
to: you@example.com to: you@example.com
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- job: - job:

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: project-testfile name: project-testfile

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: gate name: gate
@ -19,17 +19,17 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- job: - job:

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: periodic name: periodic

View File

@ -6,17 +6,17 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- job: - job:

View File

@ -6,17 +6,17 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- project: - project:

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: gate name: gate
@ -19,17 +19,17 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- pipeline: - pipeline:

View File

@ -6,17 +6,17 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
window: 2 window: 2
window-floor: 1 window-floor: 1
window-increase-type: linear window-increase-type: linear

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: gate name: gate
@ -19,17 +19,17 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- job: - job:

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: gate name: gate
@ -19,17 +19,17 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- job: - job:

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: gate name: gate
@ -19,17 +19,17 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- job: - job:

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: gate name: gate
@ -19,17 +19,17 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- job: - job:

View File

@ -9,13 +9,13 @@
to: you@example.com to: you@example.com
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
smtp: smtp:
to: alternative_me@example.com to: alternative_me@example.com
from: zuul_from@example.com from: zuul_from@example.com
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: gate name: gate
@ -25,17 +25,17 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- job: - job:

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- job: - job:
name: merge name: merge

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: gate name: gate
@ -19,17 +19,17 @@
gerrit: gerrit:
- event: comment-added - event: comment-added
approval: approval:
- approved: 1 - Approved: 1
success: success:
gerrit: gerrit:
verified: 2 Verified: 2
submit: true submit: true
failure: failure:
gerrit: gerrit:
verified: -2 Verified: -2
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
precedence: high precedence: high
- job: - job:

View File

@ -6,10 +6,10 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
- pipeline: - pipeline:
name: periodic name: periodic

View File

@ -10,13 +10,13 @@
- event: patchset-created - event: patchset-created
success: success:
gerrit: gerrit:
verified: 1 Verified: 1
failure: failure:
gerrit: gerrit:
verified: -1 Verified: -1
start: start:
gerrit: gerrit:
verified: 0 Verified: 0
- project: - project:
name: org/project1 name: org/project1

View File

@ -39,7 +39,7 @@ class TestConnections(ZuulTestCase):
self.waitUntilSettled() self.waitUntilSettled()
self.assertEqual(len(A.patchsets[-1]['approvals']), 1) self.assertEqual(len(A.patchsets[-1]['approvals']), 1)
self.assertEqual(A.patchsets[-1]['approvals'][0]['type'], 'verified') self.assertEqual(A.patchsets[-1]['approvals'][0]['type'], 'Verified')
self.assertEqual(A.patchsets[-1]['approvals'][0]['value'], '1') self.assertEqual(A.patchsets[-1]['approvals'][0]['value'], '1')
self.assertEqual(A.patchsets[-1]['approvals'][0]['by']['username'], self.assertEqual(A.patchsets[-1]['approvals'][0]['by']['username'],
'jenkins') 'jenkins')
@ -51,7 +51,7 @@ class TestConnections(ZuulTestCase):
self.waitUntilSettled() self.waitUntilSettled()
self.assertEqual(len(B.patchsets[-1]['approvals']), 1) self.assertEqual(len(B.patchsets[-1]['approvals']), 1)
self.assertEqual(B.patchsets[-1]['approvals'][0]['type'], 'verified') self.assertEqual(B.patchsets[-1]['approvals'][0]['type'], 'Verified')
self.assertEqual(B.patchsets[-1]['approvals'][0]['value'], '-1') self.assertEqual(B.patchsets[-1]['approvals'][0]['value'], '-1')
self.assertEqual(B.patchsets[-1]['approvals'][0]['by']['username'], self.assertEqual(B.patchsets[-1]['approvals'][0]['by']['username'],
'civoter') 'civoter')

View File

@ -581,7 +581,7 @@ class GerritConnection(BaseConnection):
continue continue
elif label['status'] in ['NEED', 'REJECT']: elif label['status'] in ['NEED', 'REJECT']:
# It may be our own rejection, so we ignore # It may be our own rejection, so we ignore
if label['label'].lower() not in allow_needs: if label['label'] not in allow_needs:
return False return False
continue continue
else: else:

View File

@ -24,11 +24,6 @@ from zuul.driver.util import time_to_seconds
EMPTY_GIT_REF = '0' * 40 # git sha of all zeros, used during creates/deletes EMPTY_GIT_REF = '0' * 40 # git sha of all zeros, used during creates/deletes
def normalize_category(name):
name = name.lower()
return re.sub(' ', '-', name)
class GerritChange(Change): class GerritChange(Change):
def __init__(self, project): def __init__(self, project):
super(GerritChange, self).__init__(project) super(GerritChange, self).__init__(project)
@ -109,7 +104,7 @@ class GerritApprovalFilter(object):
else: else:
if not isinstance(v, list): if not isinstance(v, list):
v = [v] v = [v]
if (normalize_category(approval['description']) != k or if (approval['description'] != k or
int(approval['value']) not in v): int(approval['value']) not in v):
return False return False
return True return True
@ -281,8 +276,8 @@ class GerritEventFilter(EventFilter, GerritApprovalFilter):
for category, value in self.event_approvals.items(): for category, value in self.event_approvals.items():
matches_approval = False matches_approval = False
for eapp in event.approvals: for eapp in event.approvals:
if (normalize_category(eapp['description']) == category and if (eapp['description'] == category and
int(eapp['value']) == int(value)): int(eapp['value']) == int(value)):
matches_approval = True matches_approval = True
if not matches_approval: if not matches_approval:
return False return False