From e7a56bb6080bbc4bcca9e7bce7cef9e8d5928737 Mon Sep 17 00:00:00 2001 From: Shafqat Farhan Date: Mon, 18 Aug 2025 16:58:20 +0500 Subject: [PATCH] fix: Added RequestsException class to catch all errors --- provision-sanctions.sh | 6 +++--- sanctions/apps/api/v1/tests/test_views.py | 4 ++-- sanctions/apps/api/v1/views.py | 6 +++--- sanctions/settings/local.py | 2 ++ 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/provision-sanctions.sh b/provision-sanctions.sh index cfaa0e8..6c25e7d 100644 --- a/provision-sanctions.sh +++ b/provision-sanctions.sh @@ -28,11 +28,11 @@ docker exec -t sanctions.app bash -c "echo 'from django.contrib.auth import get_ # Provision IDA User in LMS echo -e "${GREEN}Provisioning ${name}_worker in LMS...${NC}" -docker exec -t edx.devstack.lms bash -c "source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker manage_user ${name}_worker ${name}_worker@example.com --staff --superuser" +docker exec -t edx.devstack.lms bash -c "source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack manage_user ${name}_worker ${name}_worker@example.com --staff --superuser" # Create the DOT applications - one for single sign-on and one for backend service IDA-to-IDA authentication. -docker exec -t edx.devstack.lms bash -c "source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker create_dot_application --grant-type authorization-code --skip-authorization --redirect-uris 'http://localhost:${port}/complete/edx-oauth2/' --client-id '${name}-sso-key' --client-secret '${name}-sso-secret' --scopes 'user_id' ${name}-sso ${name}_worker" -docker exec -t edx.devstack.lms bash -c "source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker create_dot_application --grant-type client-credentials --client-id '${name}-backend-service-key' --client-secret '${name}-backend-service-secret' ${name}-backend-service ${name}_worker" +docker exec -t edx.devstack.lms bash -c "source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack create_dot_application --grant-type authorization-code --skip-authorization --redirect-uris 'http://localhost:${port}/complete/edx-oauth2/' --client-id '${name}-sso-key' --client-secret '${name}-sso-secret' --scopes 'user_id' ${name}-sso ${name}_worker" +docker exec -t edx.devstack.lms bash -c "source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack create_dot_application --grant-type client-credentials --client-id '${name}-backend-service-key' --client-secret '${name}-backend-service-secret' ${name}-backend-service ${name}_worker" # Restart enterprise.catalog app and worker containers docker-compose restart app diff --git a/sanctions/apps/api/v1/tests/test_views.py b/sanctions/apps/api/v1/tests/test_views.py index 652798e..840139e 100644 --- a/sanctions/apps/api/v1/tests/test_views.py +++ b/sanctions/apps/api/v1/tests/test_views.py @@ -5,7 +5,7 @@ from unittest import mock from django.db.utils import OperationalError -from requests.exceptions import HTTPError +from requests.exceptions import RequestException from rest_framework.reverse import reverse from sanctions.apps.sanctions.models import SanctionsCheckFailure @@ -36,7 +36,7 @@ def test_sdn_check_missing_args_returns_400(self): @mock.patch('sanctions.apps.api.v1.views.checkSDNFallback') @mock.patch('sanctions.apps.api_client.sdn_client.SDNClient.search') def test_sdn_check_search_fails_uses_fallback(self, mock_search, mock_fallback): - mock_search.side_effect = [HTTPError] + mock_search.side_effect = [RequestException] mock_fallback.return_value = 0 self.set_jwt_cookie(self.user.id) response = self.client.post( diff --git a/sanctions/apps/api/v1/views.py b/sanctions/apps/api/v1/views.py index 75cde54..c2b54b2 100644 --- a/sanctions/apps/api/v1/views.py +++ b/sanctions/apps/api/v1/views.py @@ -6,7 +6,7 @@ from django.conf import settings from django.http import JsonResponse from edx_rest_framework_extensions.auth.jwt.authentication import JwtAuthentication -from requests.exceptions import HTTPError, Timeout +from requests.exceptions import RequestException from rest_framework import permissions, views from sanctions.apps.api_client.sdn_client import SDNClient @@ -61,8 +61,8 @@ def post(self, request): lms_user_id ) sdn_check_response = sdn_check.search(lms_user_id, full_name, city, country) - except (HTTPError, Timeout) as e: - logger.info( + except RequestException as e: + logger.error( 'SDNCheckView: SDN API call received an error: %s.' ' Calling sanctions checkSDNFallback function for user %s.', str(e), diff --git a/sanctions/settings/local.py b/sanctions/settings/local.py index d39cca8..6e79a64 100644 --- a/sanctions/settings/local.py +++ b/sanctions/settings/local.py @@ -4,6 +4,8 @@ DEBUG = True +ALLOWED_HOSTS = ['*'] + # CACHE CONFIGURATION # See: https://docs.djangoproject.com/en/dev/ref/settings/#caches CACHES = {