File: test_snippets.py

package info (click to toggle)
python-gitlab 1%3A4.9.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,048 kB
  • sloc: python: 24,168; makefile: 171; ruby: 27; javascript: 3
file content (87 lines) | stat: -rw-r--r-- 2,435 bytes parent folder | download
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import pytest

import gitlab


def test_snippets(gl):
    snippets = gl.snippets.list(get_all=True)
    assert not snippets

    snippet = gl.snippets.create(
        {
            "title": "snippet1",
            "files": [{"file_path": "snippet1.py", "content": "import gitlab"}],
        }
    )
    snippet = gl.snippets.get(snippet.id)
    snippet.title = "updated_title"
    snippet.save()

    snippet = gl.snippets.get(snippet.id)
    assert snippet.title == "updated_title"

    content = snippet.content()
    assert content.decode() == "import gitlab"

    all_snippets = gl.snippets.list_all(get_all=True)
    public_snippets = gl.snippets.public(get_all=True)
    list_public_snippets = gl.snippets.list_public(get_all=True)
    assert isinstance(all_snippets, list)
    assert isinstance(list_public_snippets, list)
    assert public_snippets == list_public_snippets

    snippet.delete()


def test_project_snippets(project):
    project.snippets_enabled = True
    project.save()

    snippet = project.snippets.create(
        {
            "title": "snip1",
            "files": [{"file_path": "foo.py", "content": "initial content"}],
            "visibility": gitlab.const.VISIBILITY_PRIVATE,
        }
    )

    assert snippet.title == "snip1"


@pytest.mark.xfail(reason="Returning 404 UserAgentDetail not found in GL 16")
def test_project_snippet_user_agent_detail(project):
    snippet = project.snippets.list()[0]

    user_agent_detail = snippet.user_agent_detail()

    assert user_agent_detail["user_agent"]


def test_project_snippet_discussion(project):
    snippet = project.snippets.list()[0]

    discussion = snippet.discussions.create({"body": "Discussion body"})
    assert discussion in snippet.discussions.list()

    note = discussion.notes.create({"body": "first note"})
    note_from_get = discussion.notes.get(note.id)
    note_from_get.body = "updated body"
    note_from_get.save()

    discussion = snippet.discussions.get(discussion.id)
    assert discussion.attributes["notes"][-1]["body"] == "updated body"

    note_from_get.delete()


def test_project_snippet_file(project):
    snippet = project.snippets.list()[0]
    snippet.file_name = "bar.py"
    snippet.save()

    snippet = project.snippets.get(snippet.id)
    assert snippet.content().decode() == "initial content"
    assert snippet.file_name == "bar.py"
    assert snippet in project.snippets.list()

    snippet.delete()