@@ -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