diff options
author | Alex Zirka <you@example.com> | 2020-10-08 16:39:34 +0300 |
---|---|---|
committer | Alex Zirka <you@example.com> | 2020-10-08 16:39:34 +0300 |
commit | f37ebf5fd792c8e8a973443a1df386fa77d1248f (patch) | |
tree | c1c51ce17fa85df883aad6982e1c430da8410b08 | |
parent | 05cbdc224007e9dda10fc2f6f7d63c82cf36dec0 (diff) | |
download | gitlab-f37ebf5fd792c8e8a973443a1df386fa77d1248f.tar.gz |
feat: unit tests added
-rw-r--r-- | gitlab/tests/objects/test_bridges.py | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/gitlab/tests/objects/test_bridges.py b/gitlab/tests/objects/test_bridges.py new file mode 100644 index 0000000..ea8c634 --- /dev/null +++ b/gitlab/tests/objects/test_bridges.py @@ -0,0 +1,111 @@ +""" +GitLab API: https://docs.gitlab.com/ee/api/jobs.html#list-pipeline-bridges +""" +import re + +import pytest +import responses + +from gitlab.v4.objects import Project, ProjectPipelineBridge + + +@pytest.fixture +def resp_list_bridges(): + export_bridges_content = { + "commit": { + "author_email": "admin@example.com", + "author_name": "Administrator", + "created_at": "2015-12-24T16:51:14.000+01:00", + "id": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd", + "message": "Test the CI integration.", + "short_id": "0ff3ae19", + "title": "Test the CI integration.", + }, + "allow_failure": False, + "created_at": "2015-12-24T15:51:21.802Z", + "started_at": "2015-12-24T17:54:27.722Z", + "finished_at": "2015-12-24T17:58:27.895Z", + "duration": 240, + "id": 7, + "name": "teaspoon", + "pipeline": { + "id": 6, + "ref": "master", + "sha": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd", + "status": "pending", + "created_at": "2015-12-24T15:50:16.123Z", + "updated_at": "2015-12-24T18:00:44.432Z", + "web_url": "https://example.com/foo/bar/pipelines/6", + }, + "ref": "master", + "stage": "test", + "status": "pending", + "tag": False, + "web_url": "https://example.com/foo/bar/-/jobs/7", + "user": { + "id": 1, + "name": "Administrator", + "username": "root", + "state": "active", + "avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", + "web_url": "http://gitlab.dev/root", + "created_at": "2015-12-21T13:14:24.077Z", + "public_email": "", + "skype": "", + "linkedin": "", + "twitter": "", + "website_url": "", + "organization": "", + }, + "downstream_pipeline": { + "id": 5, + "sha": "f62a4b2fb89754372a346f24659212eb8da13601", + "ref": "master", + "status": "pending", + "created_at": "2015-12-24T17:54:27.722Z", + "updated_at": "2015-12-24T17:58:27.896Z", + "web_url": "https://example.com/diaspora/diaspora-client/pipelines/5", + }, + } + + export_pipelines_content = [ + { + "id": 6, + "status": "pending", + "ref": "new-pipeline", + "sha": "a91957a858320c0e17f3a0eca7cfacbff50ea29a", + "web_url": "https://example.com/foo/bar/pipelines/47", + "created_at": "2016-08-11T11:28:34.085Z", + "updated_at": "2016-08-11T11:32:35.169Z", + }, + ] + + with responses.RequestsMock() as rsps: + rsps.add( + method=responses.GET, + url="http://localhost/api/v4/projects/1/pipelines/6/bridges", + json=[export_bridges_content], + content_type="application/json", + status=200, + ) + rsps.add( + method=responses.GET, + url="http://localhost/api/v4/projects/1/pipelines", + json=export_pipelines_content, + content_type="application/json", + status=200, + ) + yield rsps + + +def test_list_projects_pipelines_bridges(project, resp_list_bridges): + pipeline = project.pipelines.list()[0] + bridges = pipeline.bridges.list() + + assert isinstance(bridges, list) + assert isinstance(bridges[0], ProjectPipelineBridge) + assert bridges[0].downstream_pipeline["id"] == 5 + assert ( + bridges[0].downstream_pipeline["sha"] + == "f62a4b2fb89754372a346f24659212eb8da13601" + ) |