Handle review_requested event (#73091)
gitea/gitea-redmine/pipeline/head This commit looks good
Details
gitea/gitea-redmine/pipeline/head This commit looks good
Details
This commit is contained in:
parent
efe5be4862
commit
70bf0b10d6
|
@ -102,16 +102,23 @@ def get_handler(payload):
|
|||
if payload['review']['type'] == 'pull_request_review_approved':
|
||||
return handle_pull_request_approved, 'pull_request.approved'
|
||||
return None, None
|
||||
|
||||
if payload.get('action') == 'review_requested':
|
||||
return handle_pull_request_review_requested, 'pull_request.review_requested'
|
||||
|
||||
if payload.get('action') == 'edited' and payload.get('pull_request'):
|
||||
return handle_pull_request_edited, 'pull_request.edited'
|
||||
|
||||
if (
|
||||
payload.get('action') == 'closed'
|
||||
and payload.get('pull_request')
|
||||
and payload['pull_request'].get('merged')
|
||||
):
|
||||
return handle_pull_request_merged, 'pull_request.merged'
|
||||
|
||||
if payload.get('action') == 'closed' and payload.get('pull_request'):
|
||||
return handle_pull_request_closed, 'pull_request.closed'
|
||||
|
||||
return None, None
|
||||
|
||||
|
||||
|
@ -368,6 +375,15 @@ handle_pull_request_closed = make_handler(
|
|||
)
|
||||
|
||||
|
||||
handle_pull_request_review_requested = make_handler(
|
||||
set_status(REDMINE_STATUSES['Solution proposée'], unless=CLOSED_STATUSES),
|
||||
add_note(
|
||||
'{sender_full_name} ({sender_username}) a demandé une relecture de {requested_reviewer_full_name} ({requested_reviewer_username}) sur une pull request sur Gitea concernant cette demande :\n\n* URL : {pull_request_url}'
|
||||
),
|
||||
save(),
|
||||
)
|
||||
|
||||
|
||||
@app.route('/redmine-issue/<issue_id>/', methods=['GET'])
|
||||
def redmine_issue(issue_id):
|
||||
try:
|
||||
|
|
35
test_app.py
35
test_app.py
|
@ -53,6 +53,11 @@ def client():
|
|||
'pull_request.closed',
|
||||
),
|
||||
({'action': 'unknown', 'pull_request': 'foo'}, None, None),
|
||||
(
|
||||
{'action': 'review_requested'},
|
||||
gitea_redmine.handle_pull_request_review_requested,
|
||||
'pull_request.review_requested',
|
||||
),
|
||||
],
|
||||
)
|
||||
def test_get_handler(payload, expected_handler, expected_event):
|
||||
|
@ -627,3 +632,33 @@ def test_issue_endpoint(client, mocker):
|
|||
assert response.json == {'status': 'error', 'detail': 'Private issue'}
|
||||
response = client.get('/redmine-issue/345/')
|
||||
assert response.json == {'status': 'error', 'detail': 'Not found'}
|
||||
|
||||
|
||||
def test_handle_pull_request_review_requested(mocker):
|
||||
payload = {
|
||||
'action': 'review_requested',
|
||||
'sender': {
|
||||
'full_name': 'John Doe',
|
||||
'username': 'john.doe',
|
||||
},
|
||||
'requested_reviewer': {
|
||||
'full_name': 'Jane Doe',
|
||||
'username': 'jane.doe',
|
||||
},
|
||||
'pull_request': {
|
||||
'url': 'https://gitea.entrouvert.org/entrouvert/gitea-redmine/pulls/2',
|
||||
},
|
||||
}
|
||||
|
||||
issue = mocker.Mock()
|
||||
project = mocker.Mock()
|
||||
project.parent = None
|
||||
gitea_redmine.handle_pull_request_review_requested(issue, payload, project)
|
||||
|
||||
assert issue.status_id == gitea_redmine.REDMINE_STATUSES['Solution proposée']
|
||||
assert issue.mock_calls == [mocker.call.save()]
|
||||
assert issue.notes == (
|
||||
'John Doe (john.doe) a demandé une relecture de Jane Doe (jane.doe) sur une pull request sur Gitea concernant cette demande :\n\n'
|
||||
'* URL : https://gitea.entrouvert.org/entrouvert/gitea-redmine/pulls/2'
|
||||
)
|
||||
issue.save.assert_called_once()
|
||||
|
|
Loading…
Reference in New Issue