summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Zirka <you@example.com>2020-10-08 16:39:34 +0300
committerAlex Zirka <you@example.com>2020-10-08 16:39:34 +0300
commitf37ebf5fd792c8e8a973443a1df386fa77d1248f (patch)
treec1c51ce17fa85df883aad6982e1c430da8410b08
parent05cbdc224007e9dda10fc2f6f7d63c82cf36dec0 (diff)
downloadgitlab-f37ebf5fd792c8e8a973443a1df386fa77d1248f.tar.gz
feat: unit tests added
-rw-r--r--gitlab/tests/objects/test_bridges.py111
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"
+ )