Skip to content

Commit 2f37ccb

Browse files
authored
Merge pull request #1733 from simonisateur/fix-package-file-delete
feat: package file delete on package file object
2 parents 4945353 + 124667b commit 2f37ccb

File tree

3 files changed

+36
-3
lines changed

3 files changed

+36
-3
lines changed

docs/gl_objects/packages.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ Delete a package file in a project::
9393

9494
package = project.packages.get(1)
9595
file = package.package_files.list()[0]
96-
package.package_files.delete(file.id)
96+
file.delete()
9797

9898

9999
Generic Packages

gitlab/v4/objects/packages.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ def get(
173173
return cast(ProjectPackage, super().get(id=id, lazy=lazy, **kwargs))
174174

175175

176-
class ProjectPackageFile(RESTObject):
176+
class ProjectPackageFile(ObjectDeleteMixin, RESTObject):
177177
pass
178178

179179

tests/unit/objects/test_packages.py

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,29 @@ def resp_delete_package_file(no_content):
168168
yield rsps
169169

170170

171+
@pytest.fixture
172+
def resp_delete_package_file_list(no_content):
173+
with responses.RequestsMock() as rsps:
174+
rsps.add(
175+
method=responses.GET,
176+
url=re.compile(
177+
r"http://localhost/api/v4/projects/1/packages/1/package_files"
178+
),
179+
json=package_file_content,
180+
content_type="application/json",
181+
status=200,
182+
)
183+
for pkg_file_id in range(25, 28):
184+
rsps.add(
185+
method=responses.DELETE,
186+
url=f"http://localhost/api/v4/projects/1/packages/1/package_files/{pkg_file_id}",
187+
json=no_content,
188+
content_type="application/json",
189+
status=204,
190+
)
191+
yield rsps
192+
193+
171194
@pytest.fixture
172195
def resp_list_package_files():
173196
with responses.RequestsMock() as rsps:
@@ -242,11 +265,21 @@ def test_list_project_package_files(project, resp_list_package_files):
242265
assert package_files[0].id == 25
243266

244267

245-
def test_delete_project_package_file(project, resp_delete_package_file):
268+
def test_delete_project_package_file_from_package_object(
269+
project, resp_delete_package_file
270+
):
246271
package = project.packages.get(1, lazy=True)
247272
package.package_files.delete(1)
248273

249274

275+
def test_delete_project_package_file_from_package_file_object(
276+
project, resp_delete_package_file_list
277+
):
278+
package = project.packages.get(1, lazy=True)
279+
for package_file in package.package_files.list():
280+
package_file.delete()
281+
282+
250283
def test_upload_generic_package(tmp_path, project, resp_upload_generic_package):
251284
path = tmp_path / file_name
252285
path.write_text(file_content)

0 commit comments

Comments
 (0)
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