diff options
author | Simon Hébert-Deschamps <hebs2011@usherbrooke.ca> | 2021-12-09 13:45:53 -0500 |
---|---|---|
committer | Simon Hébert-Deschamps <hebs2011@usherbrooke.ca> | 2021-12-09 13:45:53 -0500 |
commit | 124667bf16b1843ae52e65a3cc9b8d9235ff467e (patch) | |
tree | 10710091a9238ad4d7f82c7a7327ffc0f1b07369 | |
parent | 494535337b71592effeca57bb1ff2e735ebeb58a (diff) | |
download | gitlab-124667bf16b1843ae52e65a3cc9b8d9235ff467e.tar.gz |
feat: add delete on package_file object
-rw-r--r-- | docs/gl_objects/packages.rst | 2 | ||||
-rw-r--r-- | gitlab/v4/objects/packages.py | 2 | ||||
-rw-r--r-- | 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 cdb7d30..93e0e9d 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 2313f3e..0461bdc 100644 --- a/gitlab/v4/objects/packages.py +++ b/gitlab/v4/objects/packages.py @@ -173,7 +173,7 @@ class ProjectPackageManager(ListMixin, GetMixin, DeleteMixin, RESTManager): 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 68224ce..13f33f7 100644 --- a/tests/unit/objects/test_packages.py +++ b/tests/unit/objects/test_packages.py @@ -169,6 +169,29 @@ def resp_delete_package_file(no_content): @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: rsps.add( @@ -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) |