gitlab_project: add support for merge_method on projects (#636)

Migrated from ansible/ansible#66813

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
This commit is contained in:
Abhijeet Kasurde 2020-07-14 20:17:46 +05:30 committed by GitHub
parent 41cfdda6a3
commit c034e8c04f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 49 additions and 13 deletions

View file

@ -353,7 +353,7 @@ PROJECT API
@urlmatch(scheme="http", netloc="localhost", path="/api/v4/projects", method="get")
def resp_find_project(url, request):
headers = {'content-type': 'application/json'}
content = ('[{"id": 1,"description": null, "default_branch": "master",'
content = ('[{"id": 1,"description": null, "default_branch": "master", "merge_method": "merge",'
'"ssh_url_to_repo": "git@example.com:diaspora/diaspora-client.git",'
'"http_url_to_repo": "http://example.com/diaspora/diaspora-client.git",'
'"web_url": "http://example.com/diaspora/diaspora-client",'
@ -371,7 +371,7 @@ def resp_find_project(url, request):
@urlmatch(scheme="http", netloc="localhost", path="/api/v4/projects/1", method="get")
def resp_get_project(url, request):
headers = {'content-type': 'application/json'}
content = ('{"id": 1,"description": null, "default_branch": "master",'
content = ('{"id": 1,"description": null, "default_branch": "master", "merge_method": "merge",'
'"ssh_url_to_repo": "git@example.com:diaspora/diaspora-client.git",'
'"http_url_to_repo": "http://example.com/diaspora/diaspora-client.git",'
'"web_url": "http://example.com/diaspora/diaspora-client",'
@ -389,7 +389,7 @@ def resp_get_project(url, request):
@urlmatch(scheme="http", netloc="localhost", path="/api/v4/projects/foo-bar%2Fdiaspora-client", method="get")
def resp_get_project_by_name(url, request):
headers = {'content-type': 'application/json'}
content = ('{"id": 1,"description": null, "default_branch": "master",'
content = ('{"id": 1,"description": null, "default_branch": "master", "merge_method": "merge",'
'"ssh_url_to_repo": "git@example.com:diaspora/diaspora-client.git",'
'"http_url_to_repo": "http://example.com/diaspora/diaspora-client.git",'
'"web_url": "http://example.com/diaspora/diaspora-client",'
@ -407,7 +407,7 @@ def resp_get_project_by_name(url, request):
@urlmatch(scheme="http", netloc="localhost", path="/api/v4/groups/1/projects", method="get")
def resp_find_group_project(url, request):
headers = {'content-type': 'application/json'}
content = ('[{"id": 1,"description": null, "default_branch": "master",'
content = ('[{"id": 1,"description": null, "default_branch": "master", "merge_method": "merge",'
'"ssh_url_to_repo": "git@example.com:diaspora/diaspora-client.git",'
'"http_url_to_repo": "http://example.com/diaspora/diaspora-client.git",'
'"web_url": "http://example.com/diaspora/diaspora-client",'
@ -425,7 +425,7 @@ def resp_find_group_project(url, request):
@urlmatch(scheme="http", netloc="localhost", path="/api/v4/groups/1/projects/1", method="get")
def resp_get_group_project(url, request):
headers = {'content-type': 'application/json'}
content = ('{"id": 1,"description": null, "default_branch": "master",'
content = ('{"id": 1,"description": null, "default_branch": "master", "merge_method": "merge",'
'"ssh_url_to_repo": "git@example.com:diaspora/diaspora-client.git",'
'"http_url_to_repo": "http://example.com/diaspora/diaspora-client.git",'
'"web_url": "http://example.com/diaspora/diaspora-client",'
@ -443,7 +443,7 @@ def resp_get_group_project(url, request):
@urlmatch(scheme="http", netloc="localhost", path="/api/v4/projects", method="post")
def resp_create_project(url, request):
headers = {'content-type': 'application/json'}
content = ('{"id": 1,"description": null, "default_branch": "master",'
content = ('{"id": 1,"description": null, "default_branch": "master", "merge_method": "merge",'
'"ssh_url_to_repo": "git@example.com:diaspora/diaspora-client.git",'
'"http_url_to_repo": "http://example.com/diaspora/diaspora-client.git",'
'"web_url": "http://example.com/diaspora/diaspora-client",'

View file

@ -91,6 +91,26 @@ class TestGitlabProject(GitlabModuleTestCase):
self.assertEqual(changed, False)
self.assertEqual(newProject.name, "New Name")
@with_httmock(resp_get_project)
def test_update_project_merge_method(self):
project = self.gitlab_instance.projects.get(1)
# merge_method should be 'merge' by default
self.assertEqual(project.merge_method, "merge")
changed, newProject = self.moduleUtil.updateProject(project, {"name": "New Name", "merge_method": "rebase_merge"})
self.assertEqual(changed, True)
self.assertEqual(type(newProject), Project)
self.assertEqual(newProject.name, "New Name")
self.assertEqual(newProject.merge_method, "rebase_merge")
changed, newProject = self.moduleUtil.updateProject(project, {"name": "New Name", "merge_method": "rebase_merge"})
self.assertEqual(changed, False)
self.assertEqual(newProject.name, "New Name")
self.assertEqual(newProject.merge_method, "rebase_merge")
@with_httmock(resp_get_group)
@with_httmock(resp_get_project_by_name)
@with_httmock(resp_delete_project)