change tracker only when required (#77168)
gitea/gitea-redmine/pipeline/head This commit looks good Details

This commit is contained in:
Benjamin Dauvergne 2023-05-02 13:03:43 +02:00
parent b4d45ca6fa
commit f43e71ab66
2 changed files with 16 additions and 3 deletions

View File

@ -37,6 +37,8 @@ CLOSED_STATUSES = [
REDMINE_TRACKERS = {
'Développement': 2,
'Bug': 1,
'Documentation': 6,
}
@ -203,7 +205,8 @@ def set_status(status_id, unless=[]):
def inner(issue, payload):
current_status = issue.status.id
if current_status not in unless:
issue.tracker_id = REDMINE_TRACKERS['Développement']
if issue.tracker_id not in list(REDMINE_TRACKERS.values()):
issue.tracker_id = REDMINE_TRACKERS['Développement']
issue.status_id = status_id
return inner

View File

@ -86,7 +86,16 @@ def test_flatten(dict, expected):
assert gitea_redmine.flatten(dict) == expected
def test_handle_pull_request_opened(mocker):
@pytest.mark.parametrize(
'current_tracker_id,expected_tracker_id',
[
(gitea_redmine.REDMINE_TRACKERS['Développement'], gitea_redmine.REDMINE_TRACKERS['Développement']),
(gitea_redmine.REDMINE_TRACKERS['Bug'], gitea_redmine.REDMINE_TRACKERS['Bug']),
(gitea_redmine.REDMINE_TRACKERS['Documentation'], gitea_redmine.REDMINE_TRACKERS['Documentation']),
(None, gitea_redmine.REDMINE_TRACKERS['Développement']),
],
)
def test_handle_pull_request_opened(current_tracker_id, expected_tracker_id, mocker):
redmine_user = mocker.Mock(id=42)
get_redmine_user = mocker.patch.object(gitea_redmine, 'get_redmine_user', return_value=redmine_user)
@ -111,12 +120,13 @@ def test_handle_pull_request_opened(mocker):
project = mocker.Mock()
project.parent = None
issue = mocker.Mock()
issue.tracker_id = current_tracker_id
gitea_redmine.handle_pull_request_opened(issue, payload, project)
get_redmine_user.assert_called_once_with('testuser')
assert issue.assigned_to_id == redmine_user.id
assert issue.tracker_id == gitea_redmine.REDMINE_TRACKERS['Développement']
assert issue.tracker_id == expected_tracker_id
assert issue.status_id == gitea_redmine.REDMINE_STATUSES['Solution proposée']
assert issue.notes == (
'Test User (testuser) a ouvert une pull request sur Gitea concernant cette demande :\n\n'