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
|
"""
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():
with responses.RequestsMock() as rsps:
rsps.add(
method=responses.DELETE,
url="http://localhost/api/v4/projects/1/registry/repositories/1",
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
|