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)