From 124667bf16b1843ae52e65a3cc9b8d9235ff467e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20H=C3=A9bert-Deschamps?= Date: Thu, 9 Dec 2021 13:45:53 -0500 Subject: [PATCH] feat: add delete on package_file object --- docs/gl_objects/packages.rst | 2 +- gitlab/v4/objects/packages.py | 2 +- tests/unit/objects/test_packages.py | 35 ++++++++++++++++++++++++++++- 3 files changed, 36 insertions(+), 3 deletions(-) diff --git a/docs/gl_objects/packages.rst b/docs/gl_objects/packages.rst index cdb7d3094..93e0e9da4 100644 --- a/docs/gl_objects/packages.rst +++ b/docs/gl_objects/packages.rst @@ -93,7 +93,7 @@ Delete a package file in a project:: package = project.packages.get(1) file = package.package_files.list()[0] - package.package_files.delete(file.id) + file.delete() Generic Packages diff --git a/gitlab/v4/objects/packages.py b/gitlab/v4/objects/packages.py index 2313f3eff..0461bdcd9 100644 --- a/gitlab/v4/objects/packages.py +++ b/gitlab/v4/objects/packages.py @@ -173,7 +173,7 @@ def get( return cast(ProjectPackage, super().get(id=id, lazy=lazy, **kwargs)) -class ProjectPackageFile(RESTObject): +class ProjectPackageFile(ObjectDeleteMixin, RESTObject): pass diff --git a/tests/unit/objects/test_packages.py b/tests/unit/objects/test_packages.py index 68224ceac..13f33f7ba 100644 --- a/tests/unit/objects/test_packages.py +++ b/tests/unit/objects/test_packages.py @@ -168,6 +168,29 @@ def resp_delete_package_file(no_content): yield rsps +@pytest.fixture +def resp_delete_package_file_list(no_content): + with responses.RequestsMock() as rsps: + rsps.add( + method=responses.GET, + url=re.compile( + r"http://localhost/api/v4/projects/1/packages/1/package_files" + ), + json=package_file_content, + content_type="application/json", + status=200, + ) + for pkg_file_id in range(25, 28): + rsps.add( + method=responses.DELETE, + url=f"http://localhost/api/v4/projects/1/packages/1/package_files/{pkg_file_id}", + json=no_content, + content_type="application/json", + status=204, + ) + yield rsps + + @pytest.fixture def resp_list_package_files(): with responses.RequestsMock() as rsps: @@ -242,11 +265,21 @@ 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): +def test_delete_project_package_file_from_package_object( + project, resp_delete_package_file +): package = project.packages.get(1, lazy=True) package.package_files.delete(1) +def test_delete_project_package_file_from_package_file_object( + project, resp_delete_package_file_list +): + package = project.packages.get(1, lazy=True) + for package_file in package.package_files.list(): + package_file.delete() + + def test_upload_generic_package(tmp_path, project, resp_upload_generic_package): path = tmp_path / file_name path.write_text(file_content) pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy