Skip to content

Commit

Permalink
Fix circleci test
Browse files Browse the repository at this point in the history
  • Loading branch information
mattiagiupponi committed Oct 16, 2023
1 parent a733846 commit 99a1a1b
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 40 deletions.
33 changes: 18 additions & 15 deletions geonode/base/api/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -2013,6 +2013,7 @@ def test_manager_can_edit_map(self):
"""
REST API must not forbid saving maps and apps to non-admin and non-owners.
"""
self.maxDiff = None
from geonode.maps.models import Map

_map = Map.objects.filter(uuid__isnull=False, owner__username="admin").first()
Expand Down Expand Up @@ -2068,7 +2069,7 @@ def test_manager_can_edit_map(self):
response = self.client.get(resource_service_permissions_url, format="json")
self.assertEqual(response.status_code, 200)
resource_perm_spec = response.data
self.assertEqual(
self.assertDictEqual(
resource_perm_spec,
{
"users": [
Expand Down Expand Up @@ -2109,7 +2110,7 @@ def test_manager_can_edit_map(self):
response = self.client.get(get_perms_url, format="json")
self.assertEqual(response.status_code, 200)
resource_perm_spec = response.data
self.assertEqual(
self.assertDictEqual(
resource_perm_spec,
{
"users": [
Expand Down Expand Up @@ -2148,20 +2149,10 @@ def test_manager_can_edit_map(self):
response = self.client.get(get_perms_url, format="json")
self.assertEqual(response.status_code, 200)
resource_perm_spec = response.data
self.assertEqual(
self.assertDictEqual(
resource_perm_spec,
{
"users": [
{
"id": 1,
"username": "admin",
"first_name": "admin",
"last_name": "",
"avatar": "https://www.gravatar.com/avatar/7a68c67c8d409ff07e42aa5d5ab7b765/?s=240",
"permissions": "owner",
"is_staff": True,
"is_superuser": True,
},
{
"id": bobby.id,
"username": "bobby",
Expand All @@ -2172,6 +2163,16 @@ def test_manager_can_edit_map(self):
"is_staff": False,
"is_superuser": False,
},
{
"id": 1,
"username": "admin",
"first_name": "admin",
"last_name": "",
"avatar": "https://www.gravatar.com/avatar/7a68c67c8d409ff07e42aa5d5ab7b765/?s=240",
"permissions": "owner",
"is_staff": True,
"is_superuser": True,
},
],
"organizations": [],
"groups": [
Expand Down Expand Up @@ -2468,7 +2469,7 @@ def test_base_resources_return_not_download_links_for_maps(self):
"""
Ensure we can access the Resource Base list.
"""
_map = Map.objects.first()
_map = create_single_map("map_1")
# From resource base API
url = reverse("base-resources-detail", args=[_map.id])
response = self.client.get(url, format="json")
Expand All @@ -2479,12 +2480,13 @@ def test_base_resources_return_not_download_links_for_maps(self):
url = reverse("maps-detail", args=[_map.id])
download_url = response.json().get("resource").get("download_urls")
self.assertListEqual([], download_url)
_map.delete()

def test_base_resources_return_download_links_for_documents(self):
"""
Ensure we can access the Resource Base list.
"""
doc = Document.objects.first()
doc = create_single_doc("doc_1")
expected_payload = [{"url": build_absolute_uri(doc.download_url), "ajax_safe": doc.download_is_ajax_safe}]
# From resource base API
url = reverse("base-resources-detail", args=[doc.id])
Expand All @@ -2496,6 +2498,7 @@ def test_base_resources_return_download_links_for_documents(self):
url = reverse("documents-detail", args=[doc.id])
download_url = response.json().get("resource").get("download_urls")
self.assertListEqual(expected_payload, download_url)
doc.delete()

def test_base_resources_return_download_links_for_datasets(self):
"""
Expand Down
3 changes: 1 addition & 2 deletions geonode/layers/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -1199,7 +1199,6 @@ def test_dataset_download_redirect_to_proxy_url(self):
self.assertEqual(302, response.status_code)
self.assertEqual(f"/download/{dataset.id}", response.url)

@patch("geonode.layers.download_handler.HttpClient.request")
def test_dataset_download_invalid_wps_format(self):
# if settings.USE_GEOSERVER is false, the URL must be redirected
self.client.login(username="admin", password="admin")
Expand All @@ -1209,7 +1208,7 @@ def test_dataset_download_invalid_wps_format(self):
self.assertEqual(500, response.status_code)
self.assertDictEqual({"error": "The format provided is not valid for the selected resource"}, response.json())

@patch("geonode.layers.views.HttpClient.request")
@patch("geonode.layers.download_handler.HttpClient.request")
def test_dataset_download_call_the_catalog_raise_error_for_no_200(self, mocked_catalog):
_response = MagicMock(status_code=500, content="foo-bar")
mocked_catalog.return_value = _response, "foo-bar"
Expand Down
80 changes: 57 additions & 23 deletions geonode/upload/api/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@
#
#########################################################################

from geonode.base.models import ResourceBase
from geonode.resource.models import ExecutionRequest
from geonode.geoserver.helpers import gs_catalog
import os
import shutil
import logging
Expand Down Expand Up @@ -233,35 +235,67 @@ def test_rest_uploads(self):
"""
Ensure we can access the Local Server Uploads list.
"""
# Try to upload a good raster file and check the session IDs
fname = os.path.join(GOOD_DATA, "raster", "relief_san_andres.tif")
resp, data = rest_upload_by_path(fname, self.client)
self.assertEqual(resp.status_code, 201)

url = reverse("uploads-list")
# Anonymous
self.client.logout()
response = self.client.get(url, format="json")
self.assertEqual(response.status_code, 200)
self.assertEqual(len(response.data), 5)
self.assertEqual(response.data["total"], 0)
# Pagination
self.assertEqual(len(response.data["uploads"]), 0)
logger.debug(response.data)
resp = None
layer_name = "relief_san_andres"
try:
self._cleanup_layer(layer_name=layer_name)
# Try to upload a good raster file and check the session IDs
fname = os.path.join(GOOD_DATA, "raster", "relief_san_andres.tif")
resp, data = rest_upload_by_path(fname, self.client)
self.assertEqual(resp.status_code, 201)

url = reverse("uploads-list")
# Anonymous
self.client.logout()
response = self.client.get(url, format="json")
self.assertEqual(response.status_code, 200)
self.assertEqual(len(response.data), 5)
self.assertEqual(response.data["total"], 0)
# Pagination
self.assertEqual(len(response.data["uploads"]), 0)
logger.debug(response.data)
except Exception:
if resp.json().get("errors"):
layer_name = resp.json().get("errors")[0].split("for : ")[1].split(",")[0]
finally:
self._cleanup_layer(layer_name)

@override_settings(CELERY_TASK_ALWAYS_EAGER=True)
def test_rest_uploads_non_interactive(self):
"""
Ensure we can access the Local Server Uploads list.
"""
# Try to upload a good raster file and check the session IDs
fname = os.path.join(GOOD_DATA, "raster", "relief_san_andres.tif")
resp, data = rest_upload_by_path(fname, self.client, non_interactive=True)
self.assertEqual(resp.status_code, 201)

exec_id = data.get("execution_id", None)
_exec = ExecutionRequest.objects.get(exec_id=exec_id)
self.assertEqual(_exec.status, "finished")
resp = None
layer_name = "relief_san_andres"
try:
self._cleanup_layer(layer_name=layer_name)
# Try to upload a good raster file and check the session IDs
fname = os.path.join(GOOD_DATA, "raster", "relief_san_andres.tif")
resp, data = rest_upload_by_path(fname, self.client, non_interactive=True)
self.assertEqual(resp.status_code, 201)
exec_id = data.get("execution_id", None)
_exec = ExecutionRequest.objects.get(exec_id=exec_id)
self.assertEqual(_exec.status, "finished")
except Exception:
if resp.json().get("errors"):
layer_name = resp.json().get("errors")[0].split("for : ")[1].split(",")[0]
finally:
self._cleanup_layer(layer_name)

def _cleanup_layer(self, layer_name):
# removing the layer from geonode
x = ResourceBase.objects.filter(alternate__icontains=layer_name)
if x.exists():
for el in x.iterator():
el.delete()
# removing the layer from geoserver
dataset = gs_catalog.get_layer(layer_name)
if dataset:
gs_catalog.delete(dataset, purge="all", recurse=True)
# removing the layer from geoserver
store = gs_catalog.get_store(layer_name, workspace="geonode")
if store:
gs_catalog.delete(store, purge="all", recurse=True)

@mock.patch("geonode.upload.uploadhandler.SimpleUploadedFile")
def test_rest_uploads_with_size_limit(self, mocked_uploaded_file):
Expand Down

0 comments on commit 99a1a1b

Please sign in to comment.