diff options
author | Nejc Habjan <hab.nejc@gmail.com> | 2021-10-14 23:30:09 +0200 |
---|---|---|
committer | Nejc Habjan <hab.nejc@gmail.com> | 2021-10-14 23:30:09 +0200 |
commit | f84b28386d2b88ffdf8d9c38c7bdd64a2a539296 (patch) | |
tree | bbb169741b31563413c3c27606a6a28817cbed11 | |
parent | 79785f0bee2ef6cc9872f816a78c13583dfb77ab (diff) | |
download | gitlab-feat/delete-package-files.tar.gz |
feat(objects): support delete package files APIfeat/delete-package-files
-rw-r--r-- | docs/gl_objects/packages.rst | 7 | ||||
-rw-r--r-- | gitlab/v4/objects/packages.py | 2 | ||||
-rw-r--r-- | tests/unit/objects/test_packages.py | 18 |
3 files changed, 26 insertions, 1 deletions
diff --git a/docs/gl_objects/packages.rst b/docs/gl_objects/packages.rst index cc64e07..cdb7d30 100644 --- a/docs/gl_objects/packages.rst +++ b/docs/gl_objects/packages.rst @@ -89,6 +89,13 @@ List package files for package in project:: package = project.packages.get(1) package_files = package.package_files.list() +Delete a package file in a project:: + + package = project.packages.get(1) + file = package.package_files.list()[0] + package.package_files.delete(file.id) + + Generic Packages ================ diff --git a/gitlab/v4/objects/packages.py b/gitlab/v4/objects/packages.py index e76a5c6..d049d28 100644 --- a/gitlab/v4/objects/packages.py +++ b/gitlab/v4/objects/packages.py @@ -162,7 +162,7 @@ class ProjectPackageFile(RESTObject): pass -class ProjectPackageFileManager(ListMixin, RESTManager): +class ProjectPackageFileManager(DeleteMixin, ListMixin, RESTManager): _path = "/projects/%(project_id)s/packages/%(package_id)s/package_files" _obj_cls = ProjectPackageFile _from_parent_attrs = {"project_id": "project_id", "package_id": "id"} diff --git a/tests/unit/objects/test_packages.py b/tests/unit/objects/test_packages.py index 687054f..68224ce 100644 --- a/tests/unit/objects/test_packages.py +++ b/tests/unit/objects/test_packages.py @@ -156,6 +156,19 @@ def resp_delete_package(no_content): @pytest.fixture +def resp_delete_package_file(no_content): + with responses.RequestsMock() as rsps: + rsps.add( + method=responses.DELETE, + url="http://localhost/api/v4/projects/1/packages/1/package_files/1", + json=no_content, + content_type="application/json", + status=204, + ) + yield rsps + + +@pytest.fixture def resp_list_package_files(): with responses.RequestsMock() as rsps: rsps.add( @@ -229,6 +242,11 @@ def test_list_project_package_files(project, resp_list_package_files): assert package_files[0].id == 25 +def test_delete_project_package_file(project, resp_delete_package_file): + package = project.packages.get(1, lazy=True) + package.package_files.delete(1) + + def test_upload_generic_package(tmp_path, project, resp_upload_generic_package): path = tmp_path / file_name path.write_text(file_content) |