diff options
-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) |