summaryrefslogtreecommitdiff
path: root/tests/functional/api/test_releases.py
blob: f409c23768df4dc33a1e9014711b973e687881d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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_create_project_release_no_name(project, project_file):
    unnamed_release_tag_name = "v2.3.4"

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

    assert len(project.releases.list()) >= 1
    assert project.releases.get(unnamed_release_tag_name)
    assert release.tag_name == unnamed_release_tag_name
    assert release.description == release_description


def test_update_save_project_release(project, release):
    updated_description = f"{release.description} updated"
    release.description = updated_description
    release.save()

    release = project.releases.get(release.tag_name)
    assert release.description == updated_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):
    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"]