diff --git a/enterprise_access/apps/api/v1/tests/test_customer_billing.py b/enterprise_access/apps/api/v1/tests/test_customer_billing.py index 19e5023c..6cf29fe2 100644 --- a/enterprise_access/apps/api/v1/tests/test_customer_billing.py +++ b/enterprise_access/apps/api/v1/tests/test_customer_billing.py @@ -137,7 +137,7 @@ def test_create_enterprise_admin_portal_session_no_stripe_customer(self): url = reverse('api:v1:customer-billing-create-enterprise-admin-portal-session') with mock.patch('stripe.billing_portal.Session.create') as mock_create: - mock_create.side_effect = stripe.error.InvalidRequestError( + mock_create.side_effect = stripe.InvalidRequestError( 'Customer does not exist', 'customer' ) @@ -161,7 +161,7 @@ def test_create_enterprise_admin_portal_session_stripe_error(self): url = reverse('api:v1:customer-billing-create-enterprise-admin-portal-session') with mock.patch('stripe.billing_portal.Session.create') as mock_create: - mock_create.side_effect = stripe.error.InvalidRequestError( + mock_create.side_effect = stripe.InvalidRequestError( 'Customer does not exist', 'customer' ) @@ -313,7 +313,7 @@ def test_create_checkout_portal_session_stripe_error(self): kwargs={'pk': self.checkout_intent.id}) with mock.patch('stripe.billing_portal.Session.create') as mock_create: - mock_create.side_effect = stripe.error.AuthenticationError('Invalid API key') + mock_create.side_effect = stripe.AuthenticationError('Invalid API key') response = self.client.get( url, diff --git a/enterprise_access/apps/api/v1/views/customer_billing.py b/enterprise_access/apps/api/v1/views/customer_billing.py index 407ab7e2..4347d3be 100644 --- a/enterprise_access/apps/api/v1/views/customer_billing.py +++ b/enterprise_access/apps/api/v1/views/customer_billing.py @@ -246,7 +246,7 @@ def create_enterprise_admin_portal_session(self, request, **kwargs): customer=stripe_customer_id, return_url=f"{origin_url}/{enterprise_slug}", ) - except stripe.error.StripeError as e: + except stripe.StripeError as e: # TODO: Long term we should be explicit to different types of Stripe error exceptions available # https://docs.stripe.com/api/errors/handling, https://docs.stripe.com/error-handling msg = f"StripeError creating billing portal session for CheckoutIntent {checkout_intent}: {e}" @@ -312,7 +312,7 @@ def create_checkout_portal_session(self, request, pk=None): customer=stripe_customer_id, return_url=f"{origin_url}/billing-details/success", ) - except stripe.error.StripeError as e: + except stripe.StripeError as e: # TODO: Long term we should be explicit to different types of Stripe error exceptions available # https://docs.stripe.com/api/errors/handling, https://docs.stripe.com/error-handling msg = f"StripeError creating billing portal session for CheckoutIntent {checkout_intent}: {e}" diff --git a/enterprise_access/apps/bffs/checkout/handlers.py b/enterprise_access/apps/bffs/checkout/handlers.py index f0595ac0..649f9766 100644 --- a/enterprise_access/apps/bffs/checkout/handlers.py +++ b/enterprise_access/apps/bffs/checkout/handlers.py @@ -327,7 +327,7 @@ def enhance_with_stripe_data(self): try: session = get_stripe_checkout_session(session_id) - except stripe.error.StripeError: + except stripe.StripeError: logger.exception("Error retrieving Stripe checkout session: %s", session_id) return @@ -376,7 +376,7 @@ def _get_payment_method(session): try: payment_intent = get_stripe_payment_intent(payment_intent_id) - except stripe.error.StripeError: + except stripe.StripeError: logger.exception("Error retrieving Stripe payment intent: %s", payment_intent_id) return None @@ -387,7 +387,7 @@ def _get_payment_method(session): payment_method = None try: payment_method = get_stripe_payment_method(payment_method_id) - except stripe.error.StripeError: + except stripe.StripeError: logger.exception("Error retrieving Stripe payment method: %s", payment_method_id) return payment_method @@ -409,7 +409,7 @@ def _get_invoice_record(invoice_id, subscription_id): try: subscription = get_stripe_subscription(subscription_id) invoice_id = subscription.get('latest_invoice') - except stripe.error.StripeError: + except stripe.StripeError: logger.exception("Error retrieving Stripe subscription: %s", subscription_id) return None @@ -421,7 +421,7 @@ def _get_invoice_record(invoice_id, subscription_id): try: return get_stripe_invoice(invoice_id) - except stripe.error.StripeError: + except stripe.StripeError: logger.exception("Error retrieving Stripe invoice: %s", invoice_id) return None @@ -461,6 +461,6 @@ def _get_customer_info(invoice): customer = get_stripe_customer(customer_id) result['customer_name'] = customer.get('name') result['customer_phone'] = customer.get('phone') - except stripe.error.StripeError: + except stripe.StripeError: logger.exception("Error retrieving Stripe customer: %s", customer_id) return result diff --git a/enterprise_access/apps/bffs/tests/test_checkout_handlers.py b/enterprise_access/apps/bffs/tests/test_checkout_handlers.py index 5313a4ef..4a17e727 100644 --- a/enterprise_access/apps/bffs/tests/test_checkout_handlers.py +++ b/enterprise_access/apps/bffs/tests/test_checkout_handlers.py @@ -677,7 +677,7 @@ def test_load_and_process_no_session_id(self, mock_get_checkout_intent): def test_enhance_with_stripe_data_session_error(self, mock_session, mock_get_checkout_intent): """Test when there's an error retrieving the Stripe session.""" mock_get_checkout_intent.return_value = self.checkout_intent_data - mock_session.side_effect = stripe.error.StripeError("API Error") + mock_session.side_effect = stripe.StripeError("API Error") self.handler.load_and_process() @@ -692,7 +692,7 @@ def test_enhance_with_stripe_data_payment_intent_error( """Test when there's an error retrieving the payment intent.""" mock_get_checkout_intent.return_value = self.checkout_intent_data mock_session.return_value = self.stripe_session - mock_payment_intent.side_effect = stripe.error.StripeError("API Error") + mock_payment_intent.side_effect = stripe.StripeError("API Error") self.handler.load_and_process() @@ -711,7 +711,7 @@ def test_enhance_with_stripe_data_payment_method_error( mock_get_checkout_intent.return_value = self.checkout_intent_data mock_session.return_value = self.stripe_session mock_payment_intent.return_value = self.stripe_payment_intent - mock_payment_method.side_effect = stripe.error.StripeError("API Error") + mock_payment_method.side_effect = stripe.StripeError("API Error") self.handler.load_and_process() @@ -733,7 +733,7 @@ def test_enhance_with_stripe_data_subscription_error( mock_session.return_value = {**self.stripe_session, 'invoice': None} # Force subscription path mock_payment_intent.return_value = self.stripe_payment_intent mock_payment_method.return_value = self.stripe_payment_method - mock_subscription.side_effect = stripe.error.StripeError("API Error") + mock_subscription.side_effect = stripe.StripeError("API Error") self.handler.load_and_process() @@ -757,7 +757,7 @@ def test_enhance_with_stripe_data_invoice_error( mock_payment_intent.return_value = self.stripe_payment_intent mock_payment_method.return_value = self.stripe_payment_method mock_subscription.return_value = self.stripe_subscription - mock_invoice.side_effect = stripe.error.StripeError("API Error") + mock_invoice.side_effect = stripe.StripeError("API Error") self.handler.load_and_process() diff --git a/enterprise_access/apps/customer_billing/pricing_api.py b/enterprise_access/apps/customer_billing/pricing_api.py index d3688cd4..04bbb356 100644 --- a/enterprise_access/apps/customer_billing/pricing_api.py +++ b/enterprise_access/apps/customer_billing/pricing_api.py @@ -132,7 +132,7 @@ def get_stripe_price_data( return serialized_data - except stripe.error.StripeError as exc: + except stripe.StripeError as exc: logger.error(f'Stripe API error fetching price {price_id}: {exc}') raise StripePricingError(f'Failed to fetch price {price_id}: {exc}') from exc except Exception as exc: @@ -242,7 +242,7 @@ def get_all_stripe_prices( return prices_by_lookup_key - except stripe.error.StripeError as exc: + except stripe.StripeError as exc: logger.error(f'Stripe API error fetching all prices: {exc}') raise StripePricingError(f'Failed to fetch all prices: {exc}') from exc except Exception as exc: diff --git a/enterprise_access/apps/customer_billing/tests/test_pricing_api.py b/enterprise_access/apps/customer_billing/tests/test_pricing_api.py index bb75f1c0..de460b94 100644 --- a/enterprise_access/apps/customer_billing/tests/test_pricing_api.py +++ b/enterprise_access/apps/customer_billing/tests/test_pricing_api.py @@ -7,7 +7,7 @@ import ddt from django.test import TestCase, override_settings from edx_django_utils.cache import TieredCache -from stripe.error import InvalidRequestError +from stripe import InvalidRequestError from enterprise_access.apps.customer_billing import pricing_api diff --git a/enterprise_access/apps/customer_billing/tests/test_stripe_api.py b/enterprise_access/apps/customer_billing/tests/test_stripe_api.py index ec7a9ea1..55f50cbd 100644 --- a/enterprise_access/apps/customer_billing/tests/test_stripe_api.py +++ b/enterprise_access/apps/customer_billing/tests/test_stripe_api.py @@ -98,10 +98,10 @@ def test_get_stripe_checkout_session_cache_miss(self, mock_set, mock_get, mock_r def test_get_stripe_checkout_session_api_error(self, mock_retrieve): """Test API error handling for checkout session.""" # Setup API error - mock_retrieve.side_effect = stripe.error.StripeError("API Error") + mock_retrieve.side_effect = stripe.StripeError("API Error") # Call function and verify exception is raised - with self.assertRaises(stripe.error.StripeError): + with self.assertRaises(stripe.StripeError): get_stripe_checkout_session(self.session_id) @@ -215,10 +215,10 @@ def test_get_stripe_payment_intent_cache_miss(self, mock_set, mock_get, mock_ret def test_get_stripe_payment_intent_api_error(self, mock_retrieve): """Test API error handling for payment intent.""" # Setup API error - mock_retrieve.side_effect = stripe.error.StripeError("API Error") + mock_retrieve.side_effect = stripe.StripeError("API Error") # Call function and verify exception is raised - with self.assertRaises(stripe.error.StripeError): + with self.assertRaises(stripe.StripeError): get_stripe_payment_intent(self.payment_intent_id) @@ -282,10 +282,10 @@ def test_get_stripe_invoice_cache_miss(self, mock_set, mock_get, mock_retrieve): def test_get_stripe_invoice_api_error(self, mock_retrieve): """Test API error handling for invoice.""" # Setup API error - mock_retrieve.side_effect = stripe.error.StripeError("API Error") + mock_retrieve.side_effect = stripe.StripeError("API Error") # Call function and verify exception is raised - with self.assertRaises(stripe.error.StripeError): + with self.assertRaises(stripe.StripeError): get_stripe_invoice(self.invoice_id) @@ -349,10 +349,10 @@ def test_get_stripe_payment_method_cache_miss(self, mock_set, mock_get, mock_ret def test_get_stripe_payment_method_api_error(self, mock_retrieve): """Test API error handling for payment method.""" # Setup API error - mock_retrieve.side_effect = stripe.error.StripeError("API Error") + mock_retrieve.side_effect = stripe.StripeError("API Error") # Call function and verify exception is raised - with self.assertRaises(stripe.error.StripeError): + with self.assertRaises(stripe.StripeError): get_stripe_payment_method(self.payment_method_id) diff --git a/requirements/base.txt b/requirements/base.txt index 756dee09..760af5d4 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -8,7 +8,7 @@ amqp==5.3.1 # via kombu analytics-python==1.4.post1 # via -r requirements/base.in -asgiref==3.9.2 +asgiref==3.10.0 # via # django # django-cors-headers @@ -32,7 +32,7 @@ celery==5.5.3 # -r requirements/base.in # django-celery-results # edx-celeryutils -certifi==2025.8.3 +certifi==2025.10.5 # via requests cffi==2.0.0 # via @@ -68,7 +68,7 @@ coreschema==0.0.4 # via coreapi crispy-bootstrap5==2025.6 # via -r requirements/base.in -cryptography==46.0.1 +cryptography==46.0.2 # via # pyjwt # social-auth-core @@ -76,7 +76,7 @@ defusedxml==0.7.1 # via # python3-openid # social-auth-core -django==4.2.24 +django==4.2.25 # via # -c requirements/common_constraints.txt # -r requirements/base.in @@ -170,7 +170,7 @@ drf-yasg==1.21.11 # via edx-api-doc-tools edx-api-doc-tools==2.1.0 # via -r requirements/base.in -edx-auth-backends==4.6.0 +edx-auth-backends==4.6.1 # via -r requirements/base.in edx-braze-client==0.2.5 # via @@ -182,7 +182,7 @@ edx-celeryutils==1.4.0 # via -r requirements/base.in edx-django-release-util==1.5.0 # via -r requirements/base.in -edx-django-utils==8.0.0 +edx-django-utils==8.0.1 # via # -r requirements/base.in # edx-auth-backends @@ -280,7 +280,7 @@ pyjwt[crypto]==2.10.1 # social-auth-core pymemcache==4.0.0 # via -r requirements/base.in -pymongo==4.15.1 +pymongo==4.15.2 # via edx-opaque-keys pynacl==1.6.0 # via edx-django-utils @@ -351,7 +351,7 @@ stevedore==5.5.0 # code-annotations # edx-django-utils # edx-opaque-keys -stripe==12.5.1 +stripe==13.0.1 # via -r requirements/base.in text-unidecode==1.3 # via python-slugify diff --git a/requirements/common_constraints.txt b/requirements/common_constraints.txt index 99d9bf1b..b9035164 100644 --- a/requirements/common_constraints.txt +++ b/requirements/common_constraints.txt @@ -19,7 +19,3 @@ Django<5.0 # elastic search changelog: https://www.elastic.co/guide/en/enterprise-search/master/release-notes-7.14.0.html # See https://github.com/openedx/edx-platform/issues/35126 for more info elasticsearch<7.14.0 - -# Cause: https://github.com/openedx/edx-lint/issues/458 -# This can be unpinned once https://github.com/openedx/edx-lint/issues/459 has been resolved. -pip<24.3 diff --git a/requirements/dev.txt b/requirements/dev.txt index cd6edf25..9252b10f 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -10,7 +10,7 @@ amqp==5.3.1 # kombu analytics-python==1.4.post1 # via -r requirements/validation.txt -asgiref==3.9.2 +asgiref==3.10.0 # via # -r requirements/validation.txt # django @@ -55,7 +55,7 @@ celery==5.5.3 # -r requirements/validation.txt # django-celery-results # edx-celeryutils -certifi==2025.8.3 +certifi==2025.10.5 # via # -r requirements/validation.txt # requests @@ -128,7 +128,7 @@ coverage[toml]==7.10.7 # pytest-cov crispy-bootstrap5==2025.6 # via -r requirements/validation.txt -cryptography==46.0.1 +cryptography==46.0.2 # via # -r requirements/validation.txt # pyjwt @@ -155,7 +155,7 @@ distlib==0.4.0 # via # -r requirements/validation.txt # virtualenv -django==4.2.24 +django==4.2.25 # via # -r requirements/validation.txt # crispy-bootstrap5 @@ -265,7 +265,7 @@ drf-yasg==1.21.11 # edx-api-doc-tools edx-api-doc-tools==2.1.0 # via -r requirements/validation.txt -edx-auth-backends==4.6.0 +edx-auth-backends==4.6.1 # via -r requirements/validation.txt edx-braze-client==0.2.5 # via -r requirements/validation.txt @@ -277,7 +277,7 @@ edx-celeryutils==1.4.0 # via -r requirements/validation.txt edx-django-release-util==1.5.0 # via -r requirements/validation.txt -edx-django-utils==8.0.0 +edx-django-utils==8.0.1 # via # -r requirements/validation.txt # edx-auth-backends @@ -350,7 +350,7 @@ iniconfig==2.1.0 # via # -r requirements/validation.txt # pytest -isort==6.0.1 +isort==6.1.0 # via # -r requirements/validation.txt # pylint @@ -407,7 +407,7 @@ lxml[html-clean]==6.0.2 # via # edx-i18n-tools # lxml-html-clean -lxml-html-clean==0.4.2 +lxml-html-clean==0.4.3 # via lxml markdown-it-py==4.0.0 # via @@ -466,7 +466,7 @@ packaging==25.0 # twine path==16.16.0 # via edx-i18n-tools -pip-tools==7.5.0 +pip-tools==7.5.1 # via -r requirements/pip-tools.txt platformdirs==4.4.0 # via @@ -518,7 +518,7 @@ pyjwt[crypto]==2.10.1 # edx-drf-extensions # edx-rest-api-client # social-auth-core -pylint==3.3.8 +pylint==3.3.9 # via # -r requirements/validation.txt # edx-lint @@ -540,7 +540,7 @@ pylint-plugin-utils==0.9.0 # pylint-django pymemcache==4.0.0 # via -r requirements/validation.txt -pymongo==4.15.1 +pymongo==4.15.2 # via # -r requirements/validation.txt # edx-opaque-keys @@ -688,7 +688,7 @@ stevedore==5.5.0 # code-annotations # edx-django-utils # edx-opaque-keys -stripe==12.5.1 +stripe==13.0.1 # via -r requirements/validation.txt text-unidecode==1.3 # via @@ -698,7 +698,7 @@ tomlkit==0.13.3 # via # -r requirements/validation.txt # pylint -tox==4.30.2 +tox==4.30.3 # via -r requirements/validation.txt twine==6.2.0 # via -r requirements/validation.txt diff --git a/requirements/django.txt b/requirements/django.txt index e864a899..d17004c3 100644 --- a/requirements/django.txt +++ b/requirements/django.txt @@ -1 +1 @@ -django==4.2.24 +django==4.2.25 diff --git a/requirements/doc.txt b/requirements/doc.txt index b2a4f273..8ea2c9e8 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -14,7 +14,7 @@ amqp==5.3.1 # kombu analytics-python==1.4.post1 # via -r requirements/test.txt -asgiref==3.9.2 +asgiref==3.10.0 # via # -r requirements/test.txt # django @@ -44,7 +44,7 @@ backoff==1.10.0 # via # -r requirements/test.txt # analytics-python -beautifulsoup4==4.14.0 +beautifulsoup4==4.14.2 # via pydata-sphinx-theme billiard==4.2.2 # via @@ -61,7 +61,7 @@ celery==5.5.3 # -r requirements/test.txt # django-celery-results # edx-celeryutils -certifi==2025.8.3 +certifi==2025.10.5 # via # -r requirements/test.txt # requests @@ -133,7 +133,7 @@ coverage[toml]==7.10.7 # pytest-cov crispy-bootstrap5==2025.6 # via -r requirements/test.txt -cryptography==46.0.1 +cryptography==46.0.2 # via # -r requirements/test.txt # pyjwt @@ -157,7 +157,7 @@ distlib==0.4.0 # via # -r requirements/test.txt # virtualenv -django==4.2.24 +django==4.2.25 # via # -c requirements/common_constraints.txt # -r requirements/test.txt @@ -269,7 +269,7 @@ drf-yasg==1.21.11 # edx-api-doc-tools edx-api-doc-tools==2.1.0 # via -r requirements/test.txt -edx-auth-backends==4.6.0 +edx-auth-backends==4.6.1 # via -r requirements/test.txt edx-braze-client==0.2.5 # via @@ -283,7 +283,7 @@ edx-celeryutils==1.4.0 # via -r requirements/test.txt edx-django-release-util==1.5.0 # via -r requirements/test.txt -edx-django-utils==8.0.0 +edx-django-utils==8.0.1 # via # -r requirements/test.txt # edx-auth-backends @@ -352,7 +352,7 @@ iniconfig==2.1.0 # via # -r requirements/test.txt # pytest -isort==6.0.1 +isort==6.1.0 # via # -r requirements/test.txt # pylint @@ -470,7 +470,7 @@ pyjwt[crypto]==2.10.1 # edx-drf-extensions # edx-rest-api-client # social-auth-core -pylint==3.3.8 +pylint==3.3.9 # via # -r requirements/test.txt # edx-lint @@ -492,7 +492,7 @@ pylint-plugin-utils==0.9.0 # pylint-django pymemcache==4.0.0 # via -r requirements/test.txt -pymongo==4.15.1 +pymongo==4.15.2 # via # -r requirements/test.txt # edx-opaque-keys @@ -637,7 +637,7 @@ stevedore==5.5.0 # doc8 # edx-django-utils # edx-opaque-keys -stripe==12.5.1 +stripe==13.0.1 # via -r requirements/test.txt text-unidecode==1.3 # via @@ -647,7 +647,7 @@ tomlkit==0.13.3 # via # -r requirements/test.txt # pylint -tox==4.30.2 +tox==4.30.3 # via -r requirements/test.txt typing-extensions==4.15.0 # via diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index e3de4453..aff583b9 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -10,7 +10,7 @@ click==8.3.0 # via pip-tools packaging==25.0 # via build -pip-tools==7.5.0 +pip-tools==7.5.1 # via -r requirements/pip-tools.in pyproject-hooks==1.2.0 # via diff --git a/requirements/pip.txt b/requirements/pip.txt index 476adfba..42c70342 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -8,9 +8,7 @@ wheel==0.45.1 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==24.2 - # via - # -c requirements/common_constraints.txt - # -r requirements/pip.in +pip==25.2 + # via -r requirements/pip.in setuptools==80.9.0 # via -r requirements/pip.in diff --git a/requirements/production.txt b/requirements/production.txt index b5c8d1f6..8cc1fe0e 100644 --- a/requirements/production.txt +++ b/requirements/production.txt @@ -10,7 +10,7 @@ amqp==5.3.1 # kombu analytics-python==1.4.post1 # via -r requirements/base.txt -asgiref==3.9.2 +asgiref==3.10.0 # via # -r requirements/base.txt # django @@ -42,7 +42,7 @@ celery==5.5.3 # -r requirements/base.txt # django-celery-results # edx-celeryutils -certifi==2025.8.3 +certifi==2025.10.5 # via # -r requirements/base.txt # requests @@ -93,7 +93,7 @@ coreschema==0.0.4 # coreapi crispy-bootstrap5==2025.6 # via -r requirements/base.txt -cryptography==46.0.1 +cryptography==46.0.2 # via # -r requirements/base.txt # pyjwt @@ -103,7 +103,7 @@ defusedxml==0.7.1 # -r requirements/base.txt # python3-openid # social-auth-core -django==4.2.24 +django==4.2.25 # via # -r requirements/base.txt # crispy-bootstrap5 @@ -203,7 +203,7 @@ drf-yasg==1.21.11 # edx-api-doc-tools edx-api-doc-tools==2.1.0 # via -r requirements/base.txt -edx-auth-backends==4.6.0 +edx-auth-backends==4.6.1 # via -r requirements/base.txt edx-braze-client==0.2.5 # via -r requirements/base.txt @@ -215,7 +215,7 @@ edx-celeryutils==1.4.0 # via -r requirements/base.txt edx-django-release-util==1.5.0 # via -r requirements/base.txt -edx-django-utils==8.0.0 +edx-django-utils==8.0.1 # via # -r requirements/base.txt # edx-auth-backends @@ -355,7 +355,7 @@ pyjwt[crypto]==2.10.1 # social-auth-core pymemcache==4.0.0 # via -r requirements/base.txt -pymongo==4.15.1 +pymongo==4.15.2 # via # -r requirements/base.txt # edx-opaque-keys @@ -455,7 +455,7 @@ stevedore==5.5.0 # code-annotations # edx-django-utils # edx-opaque-keys -stripe==12.5.1 +stripe==13.0.1 # via -r requirements/base.txt text-unidecode==1.3 # via diff --git a/requirements/quality.txt b/requirements/quality.txt index f4aa9170..9b9ce07f 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -10,7 +10,7 @@ amqp==5.3.1 # kombu analytics-python==1.4.post1 # via -r requirements/test.txt -asgiref==3.9.2 +asgiref==3.10.0 # via # -r requirements/test.txt # django @@ -51,7 +51,7 @@ celery==5.5.3 # -r requirements/test.txt # django-celery-results # edx-celeryutils -certifi==2025.8.3 +certifi==2025.10.5 # via # -r requirements/test.txt # requests @@ -123,7 +123,7 @@ coverage[toml]==7.10.7 # pytest-cov crispy-bootstrap5==2025.6 # via -r requirements/test.txt -cryptography==46.0.1 +cryptography==46.0.2 # via # -r requirements/test.txt # pyjwt @@ -148,7 +148,7 @@ distlib==0.4.0 # via # -r requirements/test.txt # virtualenv -django==4.2.24 +django==4.2.25 # via # -c requirements/common_constraints.txt # -r requirements/test.txt @@ -253,7 +253,7 @@ drf-yasg==1.21.11 # edx-api-doc-tools edx-api-doc-tools==2.1.0 # via -r requirements/test.txt -edx-auth-backends==4.6.0 +edx-auth-backends==4.6.1 # via -r requirements/test.txt edx-braze-client==0.2.5 # via @@ -267,7 +267,7 @@ edx-celeryutils==1.4.0 # via -r requirements/test.txt edx-django-release-util==1.5.0 # via -r requirements/test.txt -edx-django-utils==8.0.0 +edx-django-utils==8.0.1 # via # -r requirements/test.txt # edx-auth-backends @@ -338,7 +338,7 @@ iniconfig==2.1.0 # via # -r requirements/test.txt # pytest -isort==6.0.1 +isort==6.1.0 # via # -r requirements/quality.in # -r requirements/test.txt @@ -474,7 +474,7 @@ pyjwt[crypto]==2.10.1 # edx-drf-extensions # edx-rest-api-client # social-auth-core -pylint==3.3.8 +pylint==3.3.9 # via # -r requirements/test.txt # edx-lint @@ -496,7 +496,7 @@ pylint-plugin-utils==0.9.0 # pylint-django pymemcache==4.0.0 # via -r requirements/test.txt -pymongo==4.15.1 +pymongo==4.15.2 # via # -r requirements/test.txt # edx-opaque-keys @@ -625,7 +625,7 @@ stevedore==5.5.0 # code-annotations # edx-django-utils # edx-opaque-keys -stripe==12.5.1 +stripe==13.0.1 # via -r requirements/test.txt text-unidecode==1.3 # via @@ -635,7 +635,7 @@ tomlkit==0.13.3 # via # -r requirements/test.txt # pylint -tox==4.30.2 +tox==4.30.3 # via -r requirements/test.txt twine==6.2.0 # via -r requirements/quality.in diff --git a/requirements/test.txt b/requirements/test.txt index c5476a4c..16989f41 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -10,7 +10,7 @@ amqp==5.3.1 # kombu analytics-python==1.4.post1 # via -r requirements/base.txt -asgiref==3.9.2 +asgiref==3.10.0 # via # -r requirements/base.txt # django @@ -48,7 +48,7 @@ celery==5.5.3 # -r requirements/base.txt # django-celery-results # edx-celeryutils -certifi==2025.8.3 +certifi==2025.10.5 # via # -r requirements/base.txt # requests @@ -115,7 +115,7 @@ coverage[toml]==7.10.7 # pytest-cov crispy-bootstrap5==2025.6 # via -r requirements/base.txt -cryptography==46.0.1 +cryptography==46.0.2 # via # -r requirements/base.txt # pyjwt @@ -235,7 +235,7 @@ drf-yasg==1.21.11 # edx-api-doc-tools edx-api-doc-tools==2.1.0 # via -r requirements/base.txt -edx-auth-backends==4.6.0 +edx-auth-backends==4.6.1 # via -r requirements/base.txt edx-braze-client==0.2.5 # via @@ -249,7 +249,7 @@ edx-celeryutils==1.4.0 # via -r requirements/base.txt edx-django-release-util==1.5.0 # via -r requirements/base.txt -edx-django-utils==8.0.0 +edx-django-utils==8.0.1 # via # -r requirements/base.txt # edx-auth-backends @@ -311,7 +311,7 @@ inflection==0.5.1 # drf-yasg iniconfig==2.1.0 # via pytest -isort==6.0.1 +isort==6.1.0 # via pylint itypes==1.2.0 # via @@ -411,7 +411,7 @@ pyjwt[crypto]==2.10.1 # edx-drf-extensions # edx-rest-api-client # social-auth-core -pylint==3.3.8 +pylint==3.3.9 # via # edx-lint # pylint-celery @@ -427,7 +427,7 @@ pylint-plugin-utils==0.9.0 # pylint-django pymemcache==4.0.0 # via -r requirements/base.txt -pymongo==4.15.1 +pymongo==4.15.2 # via # -r requirements/base.txt # edx-opaque-keys @@ -538,7 +538,7 @@ stevedore==5.5.0 # code-annotations # edx-django-utils # edx-opaque-keys -stripe==12.5.1 +stripe==13.0.1 # via -r requirements/base.txt text-unidecode==1.3 # via @@ -546,7 +546,7 @@ text-unidecode==1.3 # python-slugify tomlkit==0.13.3 # via pylint -tox==4.30.2 +tox==4.30.3 # via -r requirements/test.in typing-extensions==4.15.0 # via diff --git a/requirements/validation.txt b/requirements/validation.txt index 91c293ac..9d72dcd7 100644 --- a/requirements/validation.txt +++ b/requirements/validation.txt @@ -13,7 +13,7 @@ analytics-python==1.4.post1 # via # -r requirements/quality.txt # -r requirements/test.txt -asgiref==3.9.2 +asgiref==3.10.0 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -64,7 +64,7 @@ celery==5.5.3 # -r requirements/test.txt # django-celery-results # edx-celeryutils -certifi==2025.8.3 +certifi==2025.10.5 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -152,7 +152,7 @@ crispy-bootstrap5==2025.6 # via # -r requirements/quality.txt # -r requirements/test.txt -cryptography==46.0.1 +cryptography==46.0.2 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -184,7 +184,7 @@ distlib==0.4.0 # -r requirements/quality.txt # -r requirements/test.txt # virtualenv -django==4.2.24 +django==4.2.25 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -327,7 +327,7 @@ edx-api-doc-tools==2.1.0 # via # -r requirements/quality.txt # -r requirements/test.txt -edx-auth-backends==4.6.0 +edx-auth-backends==4.6.1 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -348,7 +348,7 @@ edx-django-release-util==1.5.0 # via # -r requirements/quality.txt # -r requirements/test.txt -edx-django-utils==8.0.0 +edx-django-utils==8.0.1 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -442,7 +442,7 @@ iniconfig==2.1.0 # -r requirements/quality.txt # -r requirements/test.txt # pytest -isort==6.0.1 +isort==6.1.0 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -619,7 +619,7 @@ pyjwt[crypto]==2.10.1 # edx-drf-extensions # edx-rest-api-client # social-auth-core -pylint==3.3.8 +pylint==3.3.9 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -647,7 +647,7 @@ pymemcache==4.0.0 # via # -r requirements/quality.txt # -r requirements/test.txt -pymongo==4.15.1 +pymongo==4.15.2 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -818,7 +818,7 @@ stevedore==5.5.0 # code-annotations # edx-django-utils # edx-opaque-keys -stripe==12.5.1 +stripe==13.0.1 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -832,7 +832,7 @@ tomlkit==0.13.3 # -r requirements/quality.txt # -r requirements/test.txt # pylint -tox==4.30.2 +tox==4.30.3 # via # -r requirements/quality.txt # -r requirements/test.txt