change status when PR is closed (#74119)
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
309b273e59
commit
b5bb8dd3b6
|
@ -98,6 +98,8 @@ def get_handler(payload):
|
|||
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
|
||||
|
||||
|
||||
|
@ -338,3 +340,11 @@ handle_pull_request_rejected = make_handler(
|
|||
),
|
||||
save(),
|
||||
)
|
||||
|
||||
handle_pull_request_closed = make_handler(
|
||||
set_status(REDMINE_STATUSES['En cours'], unless=CLOSED_STATUSES),
|
||||
add_note(
|
||||
'{sender_full_name} ({sender_username}) a fermé une pull request sur Gitea concernant cette demande :\n\n* URL : {pull_request_url}\n* Titre : {pull_request_title}\n* Modifications : {pull_request_url}/files'
|
||||
),
|
||||
save(),
|
||||
)
|
||||
|
|
41
test_app.py
41
test_app.py
|
@ -46,6 +46,11 @@ def client():
|
|||
gitea_redmine.handle_pull_request_merged,
|
||||
'pull_request.merged',
|
||||
),
|
||||
(
|
||||
{'action': 'closed', 'pull_request': {'merged': False}},
|
||||
gitea_redmine.handle_pull_request_closed,
|
||||
'pull_request.closed',
|
||||
),
|
||||
({'action': 'unknown', 'pull_request': 'foo'}, None, None),
|
||||
],
|
||||
)
|
||||
|
@ -535,3 +540,39 @@ def test_excluded_project_parent_false(mocker):
|
|||
project = mocker.Mock(identifier='project')
|
||||
project.parent = parent
|
||||
assert gitea_redmine.is_excluded_project(project) is False
|
||||
|
||||
|
||||
def test_handle_pull_request_closed(mocker):
|
||||
payload = {
|
||||
"action": "closed",
|
||||
"number": 2,
|
||||
"pull_request": {
|
||||
"id": 7,
|
||||
"url": "https://gitea.entrouvert.org/entrouvert/gitea-redmine/pulls/2",
|
||||
"number": 2,
|
||||
"title": "Foo",
|
||||
"body": "See #70893",
|
||||
"merged": False,
|
||||
},
|
||||
"sender": {
|
||||
"id": 7,
|
||||
"login": "testuser",
|
||||
"full_name": "Test User",
|
||||
"email": "test_user@noreply.gitea.entrouvert.org",
|
||||
"username": "testuser",
|
||||
},
|
||||
}
|
||||
project = mocker.Mock()
|
||||
project.parent = None
|
||||
issue = mocker.Mock()
|
||||
|
||||
gitea_redmine.handle_pull_request_closed(issue, payload, project)
|
||||
|
||||
assert issue.status_id == gitea_redmine.REDMINE_STATUSES['En cours']
|
||||
assert issue.notes == (
|
||||
'Test User (testuser) a fermé une pull request sur Gitea concernant cette demande :\n\n'
|
||||
'* URL : https://gitea.entrouvert.org/entrouvert/gitea-redmine/pulls/2\n'
|
||||
'* Titre : Foo\n'
|
||||
'* Modifications : https://gitea.entrouvert.org/entrouvert/gitea-redmine/pulls/2/files'
|
||||
)
|
||||
issue.save.assert_called_once()
|
||||
|
|
Loading…
Reference in New Issue