Skip to content

Commit ab2a1c8

Browse files
committed
test(api): add functional test for release links API
1 parent 958a6aa commit ab2a1c8

File tree

3 files changed

+70
-35
lines changed

3 files changed

+70
-35
lines changed

tools/functional/api/test_projects.py

Lines changed: 1 addition & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -197,32 +197,6 @@ def test_project_protected_branches(project):
197197
assert len(project.protectedbranches.list()) == 0
198198

199199

200-
def test_project_releases(gl):
201-
project = gl.projects.create(
202-
{"name": "release-test-project", "initialize_with_readme": True}
203-
)
204-
release_name = "Demo Release"
205-
release_tag_name = "v1.2.3"
206-
release_description = "release notes go here"
207-
release = project.releases.create(
208-
{
209-
"name": release_name,
210-
"tag_name": release_tag_name,
211-
"description": release_description,
212-
"ref": "master",
213-
}
214-
)
215-
assert len(project.releases.list()) == 1
216-
assert project.releases.get(release_tag_name)
217-
assert release.name == release_name
218-
assert release.tag_name == release_tag_name
219-
assert release.description == release_description
220-
221-
project.releases.delete(release_tag_name)
222-
assert len(project.releases.list()) == 0
223-
project.delete()
224-
225-
226200
def test_project_remote_mirrors(project):
227201
mirror_url = "http://gitlab.test/root/mirror.git"
228202

@@ -260,15 +234,7 @@ def test_project_stars(project):
260234
assert project.star_count == 0
261235

262236

263-
def test_project_tags(project):
264-
project.files.create(
265-
{
266-
"file_path": "README",
267-
"branch": "master",
268-
"content": "Initial content",
269-
"commit_message": "Initial commit",
270-
}
271-
)
237+
def test_project_tags(project, project_file):
272238
tag = project.tags.create({"tag_name": "v1.0", "ref": "master"})
273239
assert len(project.tags.list()) == 1
274240

tools/functional/api/test_releases.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
release_name = "Demo Release"
2+
release_tag_name = "v1.2.3"
3+
release_description = "release notes go here"
4+
5+
link_data = {"url": "https://example.com", "name": "link_name"}
6+
7+
8+
def test_create_project_release(project, project_file):
9+
project.refresh() # Gets us the current default branch
10+
release = project.releases.create(
11+
{
12+
"name": release_name,
13+
"tag_name": release_tag_name,
14+
"description": release_description,
15+
"ref": project.default_branch,
16+
}
17+
)
18+
19+
assert len(project.releases.list()) == 1
20+
assert project.releases.get(release_tag_name)
21+
assert release.name == release_name
22+
assert release.tag_name == release_tag_name
23+
assert release.description == release_description
24+
25+
26+
def test_delete_project_release(project, release):
27+
project.releases.delete(release.tag_name)
28+
assert release not in project.releases.list()
29+
30+
31+
def test_create_project_release_links(project, release):
32+
link = release.links.create(link_data)
33+
34+
release = project.releases.get(release.tag_name)
35+
assert release.assets["links"][0]["url"] == link_data["url"]
36+
assert release.assets["links"][0]["name"] == link_data["name"]

tools/functional/conftest.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,39 @@ def project(gl):
196196
print(f"Project already deleted: {e}")
197197

198198

199+
@pytest.fixture(scope="module")
200+
def project_file(project):
201+
"""File fixture for tests requiring a project with files and branches."""
202+
project_file = project.files.create(
203+
{
204+
"file_path": "README",
205+
"branch": "master",
206+
"content": "Initial content",
207+
"commit_message": "Initial commit",
208+
}
209+
)
210+
211+
return project_file
212+
213+
214+
@pytest.fixture(scope="function")
215+
def release(project, project_file):
216+
_id = uuid.uuid4().hex
217+
name = f"test-release-{_id}"
218+
219+
project.refresh() # Gets us the current default branch
220+
release = project.releases.create(
221+
{
222+
"name": name,
223+
"tag_name": _id,
224+
"description": "description",
225+
"ref": project.default_branch,
226+
}
227+
)
228+
229+
return release
230+
231+
199232
@pytest.fixture(scope="module")
200233
def user(gl):
201234
"""User fixture for user API resource tests."""

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy