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
88
89
90
91
92
93
|
"""
GitLab API: https://docs.gitlab.com/ee/api/container_registry.html
"""
import re
import pytest
import responses
from gitlab.v4.objects import ProjectRegistryRepository, RegistryRepository
repositories_content = [
{
"id": 1,
"name": "",
"path": "group/project",
"project_id": 9,
"location": "gitlab.example.com:5000/group/project",
"created_at": "2019-01-10T13:38:57.391Z",
"cleanup_policy_started_at": "2020-01-10T15:40:57.391Z",
},
{
"id": 2,
"name": "releases",
"path": "group/project/releases",
"project_id": 9,
"location": "gitlab.example.com:5000/group/project/releases",
"created_at": "2019-01-10T13:39:08.229Z",
"cleanup_policy_started_at": "2020-08-17T03:12:35.489Z",
},
]
@pytest.fixture
def resp_list_registry_repositories():
with responses.RequestsMock() as rsps:
rsps.add(
method=responses.GET,
url=re.compile(
r"http://localhost/api/v4/(groups|projects)/1/registry/repositories"
),
json=repositories_content,
content_type="application/json",
status=200,
)
yield rsps
@pytest.fixture
def resp_get_registry_repository():
with responses.RequestsMock() as rsps:
rsps.add(
method=responses.GET,
url="http://localhost/api/v4/registry/repositories/1",
json=repositories_content[0],
content_type="application/json",
status=200,
)
yield rsps
@pytest.fixture
def resp_delete_registry_repository(no_content):
with responses.RequestsMock() as rsps:
rsps.add(
method=responses.DELETE,
url="http://localhost/api/v4/projects/1/registry/repositories/1",
json=no_content,
content_type="application/json",
status=204,
)
yield rsps
def test_list_group_registry_repositories(group, resp_list_registry_repositories):
repositories = group.registry_repositories.list()
assert isinstance(repositories[0], ProjectRegistryRepository)
assert repositories[0].id == 1
def test_list_project_registry_repositories(project, resp_list_registry_repositories):
repositories = project.repositories.list()
assert isinstance(repositories[0], ProjectRegistryRepository)
assert repositories[0].id == 1
def test_delete_project_registry_repository(project, resp_delete_registry_repository):
project.repositories.delete(1)
def test_get_registry_repository(gl, resp_get_registry_repository):
repository = gl.registry_repositories.get(1)
assert isinstance(repository, RegistryRepository)
assert repository.id == 1
|