Răsfoiți Sursa

[api] Change HttpResponse to JsonResponse in /install_examples API (#4080)

Harsh Gupta 8 luni în urmă
părinte
comite
d8cce1db3a
2 a modificat fișierele cu 13 adăugiri și 13 ștergeri
  1. 6 6
      desktop/core/src/desktop/api2.py
  2. 7 7
      desktop/core/src/desktop/api2_tests.py

+ 6 - 6
desktop/core/src/desktop/api2.py

@@ -1401,10 +1401,10 @@ def _paginate(request, queryset):
 def install_app_examples(request):
   app_name = request.POST.get('app_name')
   if not app_name:
-    return HttpResponse("Missing parameter: app_name is required.", status=400)
+    return JsonResponse({'message': "Missing parameter: app_name is required."}, status=400)
 
   if not is_admin(request.user):
-    return HttpResponse("You must be a Hue admin to access this endpoint.", status=403)
+    return JsonResponse({'message': "You must be a Hue admin to access this endpoint."}, status=403)
 
   # Define supported apps and their setup functions
   setup_functions = {
@@ -1418,10 +1418,10 @@ def install_app_examples(request):
   }
 
   if app_name not in setup_functions:
-    return HttpResponse(f"Unsupported app name: {app_name}", status=400)
+    return JsonResponse({'message': f"Unsupported app name: {app_name}"}, status=400)
 
   response = setup_functions[app_name](request)
-  return response if response else HttpResponse(f"Successfully installed examples for {app_name}.", status=200)
+  return response if response else JsonResponse({'message': f"Successfully installed examples for {app_name}."})
 
 
 def _setup_hive_impala_examples(request):
@@ -1429,7 +1429,7 @@ def _setup_hive_impala_examples(request):
   db_name = request.POST.get('database_name', 'default')
 
   if dialect not in ('hive', 'impala'):
-    return HttpResponse("Invalid dialect: Must be 'hive' or 'impala'", status=400)
+    return JsonResponse({'message': "Invalid dialect: Must be 'hive' or 'impala'"}, status=400)
 
   interpreter = common.find_compute(dialect=dialect, user=request.user)
 
@@ -1455,7 +1455,7 @@ def _setup_oozie_examples(request):
 def _setup_notebook_examples(request):
   connector_id = request.POST.get('connector_id')
   if not connector_id:
-    return HttpResponse("Missing parameter: connector_id is required.", status=400)
+    return JsonResponse({'message': "Missing parameter: connector_id is required."}, status=400)
 
   connector = Connector.objects.get(id=connector_id)
   if connector:

+ 7 - 7
desktop/core/src/desktop/api2_tests.py

@@ -734,14 +734,14 @@ class TestInstallAppExampleAPI:
     response = install_app_examples(request)
 
     assert response.status_code == 400
-    assert response.content.decode('utf-8') == 'Missing parameter: app_name is required.'
+    assert json.loads(response.content.decode('utf-8'))['message'] == 'Missing parameter: app_name is required.'
 
   def test_install_app_examples_unsupported_app_name(self):
     request = Mock(method='POST', POST={'app_name': 'test_app'}, user=Mock())
     response = install_app_examples(request)
 
     assert response.status_code == 400
-    assert response.content.decode('utf-8') == 'Unsupported app name: test_app'
+    assert json.loads(response.content.decode('utf-8'))['message'] == 'Unsupported app name: test_app'
 
   def test_install_app_examples_non_admin_user(self):
     with patch('desktop.api2.is_admin') as mock_is_admin:
@@ -751,7 +751,7 @@ class TestInstallAppExampleAPI:
       response = install_app_examples(request)
 
       assert response.status_code == 403
-      assert response.content.decode('utf-8') == 'You must be a Hue admin to access this endpoint.'
+      assert json.loads(response.content.decode('utf-8'))['message'] == 'You must be a Hue admin to access this endpoint.'
 
   def test_install_app_examples_success_hive(self):
     with patch('desktop.api2.is_admin') as mock_is_admin:
@@ -763,7 +763,7 @@ class TestInstallAppExampleAPI:
         response = install_app_examples(request)
 
         assert response.status_code == 200
-        assert response.content.decode('utf-8') == 'Successfully installed examples for hive.'
+        assert json.loads(response.content.decode('utf-8'))['message'] == 'Successfully installed examples for hive.'
 
   def test_install_app_examples_success_impala(self):
     with patch('desktop.api2.is_admin') as mock_is_admin:
@@ -775,14 +775,14 @@ class TestInstallAppExampleAPI:
         response = install_app_examples(request)
 
         assert response.status_code == 200
-        assert response.content.decode('utf-8') == 'Successfully installed examples for impala.'
+        assert json.loads(response.content.decode('utf-8'))['message'] == 'Successfully installed examples for impala.'
 
   def test_setup_hive_impala_examples_invalid_dialect(self):
     request = Mock(method='POST', POST={'app_name': 'impala', 'dialect': 'test_dialect'})
     response = _setup_hive_impala_examples(request)
 
     assert response.status_code == 400
-    assert response.content.decode('utf-8') == "Invalid dialect: Must be 'hive' or 'impala'"
+    assert json.loads(response.content.decode('utf-8'))['message'] == "Invalid dialect: Must be 'hive' or 'impala'"
 
   def test_setup_hive_impala_examples_calls_command(self):
     with patch('desktop.api2.common.find_compute') as mock_find_compute:
@@ -801,7 +801,7 @@ class TestInstallAppExampleAPI:
     response = _setup_notebook_examples(request)
 
     assert response.status_code == 400
-    assert response.content.decode('utf-8') == 'Missing parameter: connector_id is required.'
+    assert json.loads(response.content.decode('utf-8'))['message'] == 'Missing parameter: connector_id is required.'
 
   def test_setup_notebook_examples_existing_connector(self):
     with patch('desktop.api2.Connector.objects.get') as mock_get_connector: