Skip to content

Commit 6359fb5

Browse files
committed
adding a test for the delete_thumbnail endpoint
1 parent 72b8e1c commit 6359fb5

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

geonode/base/api/tests.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1998,6 +1998,56 @@ def test_set_resource_thumbnail(self):
19981998
)
19991999
self.assertEqual(response.status_code, 200)
20002000

2001+
@patch("geonode.base.api.views.remove_thumb")
2002+
def test_delete_thumbnail(self, mock_remove_thumb):
2003+
2004+
resource = Dataset.objects.first()
2005+
2006+
# Set a thumbnail url and path
2007+
resource.thumbnail_url = "http://example.com/thumb/test.png"
2008+
resource.thumbnail_path = "thumb/test.png"
2009+
resource.save()
2010+
2011+
url = reverse("base-resources-delete-thumbnail", kwargs={"resource_id": resource.id})
2012+
2013+
# Anonymous user
2014+
response = self.client.post(url)
2015+
self.assertEqual(response.status_code, 403)
2016+
2017+
# Authenticated user (admin)
2018+
self.assertTrue(self.client.login(username="admin", password="admin"))
2019+
2020+
# Valid thumbnail removal
2021+
response = self.client.post(url)
2022+
self.assertEqual(response.status_code, 200)
2023+
self.assertEqual(response.data["message"], "Thumbnail deleted successfully.")
2024+
resource.refresh_from_db()
2025+
self.assertIsNone(resource.thumbnail_url)
2026+
self.assertIsNone(resource.thumbnail_path)
2027+
mock_remove_thumb.assert_called_once_with("test.png")
2028+
2029+
# Thumbnail already deleted
2030+
response = self.client.post(url)
2031+
self.assertEqual(response.status_code, 200)
2032+
self.assertEqual(response.data["message"], "The thumbnail URL field is already empty.")
2033+
self.assertFalse(response.data["success"])
2034+
2035+
# Invalid image format
2036+
resource.thumbnail_url = "http://example.com/media/thumb/test.txt"
2037+
resource.thumbnail_path = "thumb/test.txt"
2038+
resource.save()
2039+
2040+
response = self.client.post(url)
2041+
self.assertEqual(response.status_code, 400)
2042+
self.assertIn("not a valid image", response.data)
2043+
2044+
# Resource does not exist
2045+
invalid_url = reverse("base-resources-delete-thumbnail", kwargs={"resource_id": 9999})
2046+
response = self.client.post(invalid_url)
2047+
self.assertEqual(response.status_code, 404)
2048+
self.assertEqual(response.data["message"], "Resource not found.")
2049+
self.assertFalse(response.data["success"])
2050+
20012051
def test_set_thumbnail_from_bbox_from_Anonymous_user_raise_permission_error(self):
20022052
"""
20032053
Given a request with Anonymous user, should raise an authentication error.

0 commit comments

Comments
 (0)