Skip to content

Commit

Permalink
test(api): add functional test for release links API
Browse files Browse the repository at this point in the history
  • Loading branch information
nejch committed Feb 21, 2021
1 parent 958a6aa commit ab2a1c8
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 35 deletions.
36 changes: 1 addition & 35 deletions tools/functional/api/test_projects.py
Expand Up @@ -197,32 +197,6 @@ def test_project_protected_branches(project):
assert len(project.protectedbranches.list()) == 0


def test_project_releases(gl):
project = gl.projects.create(
{"name": "release-test-project", "initialize_with_readme": True}
)
release_name = "Demo Release"
release_tag_name = "v1.2.3"
release_description = "release notes go here"
release = project.releases.create(
{
"name": release_name,
"tag_name": release_tag_name,
"description": release_description,
"ref": "master",
}
)
assert len(project.releases.list()) == 1
assert project.releases.get(release_tag_name)
assert release.name == release_name
assert release.tag_name == release_tag_name
assert release.description == release_description

project.releases.delete(release_tag_name)
assert len(project.releases.list()) == 0
project.delete()


def test_project_remote_mirrors(project):
mirror_url = "http://gitlab.test/root/mirror.git"

Expand Down Expand Up @@ -260,15 +234,7 @@ def test_project_stars(project):
assert project.star_count == 0


def test_project_tags(project):
project.files.create(
{
"file_path": "README",
"branch": "master",
"content": "Initial content",
"commit_message": "Initial commit",
}
)
def test_project_tags(project, project_file):
tag = project.tags.create({"tag_name": "v1.0", "ref": "master"})
assert len(project.tags.list()) == 1

Expand Down
36 changes: 36 additions & 0 deletions tools/functional/api/test_releases.py
@@ -0,0 +1,36 @@
release_name = "Demo Release"
release_tag_name = "v1.2.3"
release_description = "release notes go here"

link_data = {"url": "https://example.com", "name": "link_name"}


def test_create_project_release(project, project_file):
project.refresh() # Gets us the current default branch
release = project.releases.create(
{
"name": release_name,
"tag_name": release_tag_name,
"description": release_description,
"ref": project.default_branch,
}
)

assert len(project.releases.list()) == 1
assert project.releases.get(release_tag_name)
assert release.name == release_name
assert release.tag_name == release_tag_name
assert release.description == release_description


def test_delete_project_release(project, release):
project.releases.delete(release.tag_name)
assert release not in project.releases.list()


def test_create_project_release_links(project, release):
link = release.links.create(link_data)

release = project.releases.get(release.tag_name)
assert release.assets["links"][0]["url"] == link_data["url"]
assert release.assets["links"][0]["name"] == link_data["name"]
33 changes: 33 additions & 0 deletions tools/functional/conftest.py
Expand Up @@ -196,6 +196,39 @@ def project(gl):
print(f"Project already deleted: {e}")


@pytest.fixture(scope="module")
def project_file(project):
"""File fixture for tests requiring a project with files and branches."""
project_file = project.files.create(
{
"file_path": "README",
"branch": "master",
"content": "Initial content",
"commit_message": "Initial commit",
}
)

return project_file


@pytest.fixture(scope="function")
def release(project, project_file):
_id = uuid.uuid4().hex
name = f"test-release-{_id}"

project.refresh() # Gets us the current default branch
release = project.releases.create(
{
"name": name,
"tag_name": _id,
"description": "description",
"ref": project.default_branch,
}
)

return release


@pytest.fixture(scope="module")
def user(gl):
"""User fixture for user API resource tests."""
Expand Down

0 comments on commit ab2a1c8

Please sign in to comment.