diff options
author | Nejc Habjan <hab.nejc@gmail.com> | 2021-02-21 12:25:55 +0100 |
---|---|---|
committer | Nejc Habjan <hab.nejc@gmail.com> | 2021-02-21 12:25:55 +0100 |
commit | ab2a1c816d83e9e308c0c9c7abf1503438b0b3be (patch) | |
tree | 0c3ba0019095f3dbce2b170d5b7e80f8e4adc16a | |
parent | 958a6aa83ead3fb6be6ec61bdd894ad78346e7bd (diff) | |
download | gitlab-ab2a1c816d83e9e308c0c9c7abf1503438b0b3be.tar.gz |
test(api): add functional test for release links API
-rw-r--r-- | tools/functional/api/test_projects.py | 36 | ||||
-rw-r--r-- | tools/functional/api/test_releases.py | 36 | ||||
-rw-r--r-- | tools/functional/conftest.py | 33 |
3 files changed, 70 insertions, 35 deletions
diff --git a/tools/functional/api/test_projects.py b/tools/functional/api/test_projects.py index 945a6ec..404f89d 100644 --- a/tools/functional/api/test_projects.py +++ b/tools/functional/api/test_projects.py @@ -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" @@ -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 diff --git a/tools/functional/api/test_releases.py b/tools/functional/api/test_releases.py new file mode 100644 index 0000000..55f7920 --- /dev/null +++ b/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"] diff --git a/tools/functional/conftest.py b/tools/functional/conftest.py index 675dba9..a0b14f9 100644 --- a/tools/functional/conftest.py +++ b/tools/functional/conftest.py @@ -197,6 +197,39 @@ def project(gl): @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.""" _id = uuid.uuid4().hex |