From 9ed06f8bd2dc43e407b1cd4632637ab748893463 Mon Sep 17 00:00:00 2001
From: OpenCraft Requirements Bot <ops+requirements_bot@opencraft.com>
Date: Mon, 23 Dec 2024 03:24:41 +0100
Subject: [PATCH] chore: Upgrade Python requirements

---
 requirements/base.txt      |  89 +++++++++---------
 requirements/ci.txt        |  20 ++--
 requirements/dev.txt       | 181 ++++++++++++++++---------------------
 requirements/pip-tools.txt |  23 ++---
 requirements/pip.txt       |  12 ++-
 requirements/quality.txt   | 135 +++++++++++++--------------
 requirements/test.txt      | 111 +++++++++++------------
 7 files changed, 258 insertions(+), 313 deletions(-)

diff --git a/requirements/base.txt b/requirements/base.txt
index 19cbc1a..c4f1185 100644
--- a/requirements/base.txt
+++ b/requirements/base.txt
@@ -1,43 +1,39 @@
 #
-# This file is autogenerated by pip-compile with Python 3.8
+# This file is autogenerated by pip-compile with Python 3.11
 # by the following command:
 #
 #    make upgrade
 #
-amqp==5.2.0
+amqp==5.3.1
     # via kombu
-asgiref==3.7.2
+asgiref==3.8.1
     # via django
-attrs==23.2.0
+attrs==24.3.0
     # via openedx-events
-backports-zoneinfo[tzdata]==0.2.1
-    # via
-    #   celery
-    #   kombu
-billiard==4.2.0
+billiard==4.2.1
     # via celery
-celery==5.3.6
+celery==5.4.0
     # via -r requirements/base.in
-certifi==2024.2.2
+certifi==2024.12.14
     # via requests
-cffi==1.16.0
+cffi==1.17.1
     # via pynacl
-charset-normalizer==3.3.2
+charset-normalizer==3.4.0
     # via requests
-click==8.1.7
+click==8.1.8
     # via
     #   celery
     #   click-didyoumean
     #   click-plugins
     #   click-repl
     #   edx-django-utils
-click-didyoumean==0.3.0
+click-didyoumean==0.3.1
     # via celery
 click-plugins==1.1.1
     # via celery
 click-repl==0.3.0
     # via celery
-django==3.2.24
+django==4.2.17
     # via
     #   -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt
     #   -r requirements/base.in
@@ -47,58 +43,61 @@ django==3.2.24
     #   openedx-events
 django-crum==0.7.9
     # via edx-django-utils
-django-waffle==4.1.0
+django-waffle==4.2.0
     # via edx-django-utils
-edx-django-utils==5.10.1
+dnspython==2.7.0
+    # via pymongo
+edx-ccx-keys==2.0.2
     # via openedx-events
-edx-opaque-keys[django]==2.5.1
+edx-django-utils==7.1.0
     # via openedx-events
-fastavro==1.9.4
+edx-opaque-keys[django]==2.11.0
+    # via
+    #   edx-ccx-keys
+    #   openedx-events
+fastavro==1.10.0
     # via openedx-events
-idna==3.6
+idna==3.10
     # via requests
-kombu==5.3.5
+kombu==5.4.2
     # via celery
-newrelic==9.7.0
+newrelic==10.4.0
     # via edx-django-utils
-openedx-events==9.5.2
+openedx-events==9.15.0
     # via -r requirements/base.in
-pbr==6.0.0
+pbr==6.1.0
     # via stevedore
-prompt-toolkit==3.0.43
+prompt-toolkit==3.0.48
     # via click-repl
-psutil==5.9.8
+psutil==6.1.1
     # via edx-django-utils
-pycparser==2.21
+pycparser==2.22
     # via cffi
-pymongo==3.13.0
+pymongo==4.10.1
     # via edx-opaque-keys
 pynacl==1.5.0
     # via edx-django-utils
-python-dateutil==2.8.2
+python-dateutil==2.9.0.post0
     # via celery
-pytz==2024.1
-    # via django
-requests==2.31.0
+requests==2.32.3
     # via -r requirements/base.in
-six==1.16.0
-    # via python-dateutil
-sqlparse==0.4.4
+six==1.17.0
+    # via
+    #   edx-ccx-keys
+    #   python-dateutil
+sqlparse==0.5.3
     # via django
-stevedore==5.2.0
+stevedore==5.4.0
     # via
     #   edx-django-utils
     #   edx-opaque-keys
-typing-extensions==4.10.0
-    # via
-    #   asgiref
-    #   edx-opaque-keys
-    #   kombu
-tzdata==2024.1
+typing-extensions==4.12.2
+    # via edx-opaque-keys
+tzdata==2024.2
     # via
-    #   backports-zoneinfo
     #   celery
-urllib3==2.2.1
+    #   kombu
+urllib3==2.3.0
     # via requests
 vine==5.1.0
     # via
diff --git a/requirements/ci.txt b/requirements/ci.txt
index a58d1b1..efd0ddc 100644
--- a/requirements/ci.txt
+++ b/requirements/ci.txt
@@ -1,38 +1,34 @@
 #
-# This file is autogenerated by pip-compile with Python 3.8
+# This file is autogenerated by pip-compile with Python 3.11
 # by the following command:
 #
 #    make upgrade
 #
-distlib==0.3.8
+distlib==0.3.9
     # via virtualenv
-filelock==3.13.1
+filelock==3.16.1
     # via
     #   tox
     #   virtualenv
-packaging==23.2
+packaging==24.2
     # via
     #   pyproject-api
     #   tox
-platformdirs==4.2.0
+platformdirs==4.3.6
     # via
     #   tox
     #   virtualenv
-pluggy==1.4.0
+pluggy==1.5.0
     # via tox
 py==1.11.0
     # via tox
-six==1.16.0
+six==1.17.0
     # via tox
-tomli==2.0.1
-    # via
-    #   pyproject-api
-    #   tox
 tox==3.28.0
     # via
     #   -r requirements/ci.in
     #   tox-battery
 tox-battery==0.6.2
     # via -r requirements/ci.in
-virtualenv==20.25.1
+virtualenv==20.28.0
     # via tox
diff --git a/requirements/dev.txt b/requirements/dev.txt
index c321127..2873cb6 100644
--- a/requirements/dev.txt
+++ b/requirements/dev.txt
@@ -1,56 +1,51 @@
 #
-# This file is autogenerated by pip-compile with Python 3.8
+# This file is autogenerated by pip-compile with Python 3.11
 # by the following command:
 #
 #    make upgrade
 #
-amqp==5.2.0
+amqp==5.3.1
     # via
     #   -r requirements/quality.txt
     #   kombu
-asgiref==3.7.2
+asgiref==3.8.1
     # via
     #   -r requirements/quality.txt
     #   django
-astroid==3.1.0
+astroid==3.3.7
     # via
     #   -r requirements/quality.txt
     #   pylint
     #   pylint-celery
-attrs==23.2.0
+attrs==24.3.0
     # via
     #   -r requirements/quality.txt
     #   openedx-events
-backports-zoneinfo[tzdata]==0.2.1
+billiard==4.2.1
     # via
     #   -r requirements/quality.txt
     #   celery
-    #   kombu
-billiard==4.2.0
-    # via
-    #   -r requirements/quality.txt
-    #   celery
-build==1.0.3
+build==1.2.2.post1
     # via
     #   -r requirements/pip-tools.txt
     #   pip-tools
-celery==5.3.6
+celery==5.4.0
     # via -r requirements/quality.txt
-certifi==2024.2.2
+certifi==2024.12.14
     # via
     #   -r requirements/quality.txt
     #   requests
-cffi==1.16.0
+cffi==1.17.1
     # via
     #   -r requirements/quality.txt
     #   pynacl
 chardet==5.2.0
     # via diff-cover
-charset-normalizer==3.3.2
+charset-normalizer==3.4.0
     # via
     #   -r requirements/quality.txt
     #   requests
-click==8.1.7
+click==8.1.8
     # via
     #   -r requirements/pip-tools.txt
     #   -r requirements/quality.txt
@@ -63,7 +58,7 @@ click==8.1.7
     #   edx-django-utils
     #   edx-lint
     #   pip-tools
-click-didyoumean==0.3.0
+click-didyoumean==0.3.1
     # via
     #   -r requirements/quality.txt
     #   celery
@@ -79,25 +74,25 @@ click-repl==0.3.0
     # via
     #   -r requirements/quality.txt
     #   celery
-code-annotations==1.6.0
+code-annotations==2.1.0
     # via
     #   -r requirements/quality.txt
     #   edx-lint
-coverage[toml]==7.4.3
+coverage[toml]==7.6.9
     # via
     #   -r requirements/quality.txt
     #   pytest-cov
-diff-cover==8.0.3
+diff-cover==9.2.1
     # via -r requirements/dev.in
-dill==0.3.8
+dill==0.3.9
     # via
     #   -r requirements/quality.txt
     #   pylint
-distlib==0.3.8
+distlib==0.3.9
     # via
     #   -r requirements/ci.txt
     #   virtualenv
-django==3.2.24
+django==4.2.17
     # via
     #   -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt
     #   -r requirements/quality.txt
@@ -110,43 +105,44 @@ django-crum==0.7.9
     # via
     #   -r requirements/quality.txt
     #   edx-django-utils
-django-waffle==4.1.0
+django-waffle==4.2.0
     # via
     #   -r requirements/quality.txt
     #   edx-django-utils
-edx-django-utils==5.10.1
+dnspython==2.7.0
+    # via
+    #   -r requirements/quality.txt
+    #   pymongo
+edx-ccx-keys==2.0.2
     # via
     #   -r requirements/quality.txt
     #   openedx-events
-edx-i18n-tools==1.3.0
-    # via -r requirements/dev.in
-edx-lint==5.3.6
-    # via -r requirements/quality.txt
-edx-opaque-keys[django]==2.5.1
+edx-django-utils==7.1.0
     # via
     #   -r requirements/quality.txt
     #   openedx-events
-exceptiongroup==1.2.0
+edx-i18n-tools==1.6.3
+    # via -r requirements/dev.in
+edx-lint==5.4.1
+    # via -r requirements/quality.txt
+edx-opaque-keys[django]==2.11.0
     # via
     #   -r requirements/quality.txt
-    #   pytest
-fastavro==1.9.4
+    #   edx-ccx-keys
+    #   openedx-events
+fastavro==1.10.0
     # via
     #   -r requirements/quality.txt
     #   openedx-events
-filelock==3.13.1
+filelock==3.16.1
     # via
     #   -r requirements/ci.txt
     #   tox
     #   virtualenv
-idna==3.6
+idna==3.10
     # via
     #   -r requirements/quality.txt
     #   requests
-importlib-metadata==7.0.1
-    # via
-    #   -r requirements/pip-tools.txt
-    #   build
 iniconfig==2.0.0
     # via
     #   -r requirements/quality.txt
@@ -155,18 +151,22 @@ isort==5.13.2
     # via
     #   -r requirements/quality.txt
     #   pylint
-jinja2==3.1.3
+jinja2==3.1.5
     # via
     #   -r requirements/quality.txt
     #   code-annotations
     #   diff-cover
-kombu==5.3.5
+kombu==5.4.2
     # via
     #   -r requirements/quality.txt
     #   celery
-lxml==5.1.0
-    # via edx-i18n-tools
-markupsafe==2.1.5
+lxml[html-clean,html_clean]==5.3.0
+    # via
+    #   edx-i18n-tools
+    #   lxml-html-clean
+lxml-html-clean==0.4.1
+    # via lxml
+markupsafe==3.0.2
     # via
     #   -r requirements/quality.txt
     #   jinja2
@@ -174,13 +174,13 @@ mccabe==0.7.0
     # via
     #   -r requirements/quality.txt
     #   pylint
-newrelic==9.7.0
+newrelic==10.4.0
     # via
     #   -r requirements/quality.txt
     #   edx-django-utils
-openedx-events==9.5.2
+openedx-events==9.15.0
     # via -r requirements/quality.txt
-packaging==23.2
+packaging==24.2
     # via
     #   -r requirements/ci.txt
     #   -r requirements/pip-tools.txt
@@ -188,21 +188,21 @@ packaging==23.2
     #   build
     #   pytest
     #   tox
-path==16.10.0
+path==16.16.0
     # via edx-i18n-tools
-pbr==6.0.0
+pbr==6.1.0
     # via
     #   -r requirements/quality.txt
     #   stevedore
-pip-tools==7.4.0
+pip-tools==7.4.1
     # via -r requirements/pip-tools.txt
-platformdirs==4.2.0
+platformdirs==4.3.6
     # via
     #   -r requirements/ci.txt
     #   -r requirements/quality.txt
     #   pylint
     #   virtualenv
-pluggy==1.4.0
+pluggy==1.5.0
     # via
     #   -r requirements/ci.txt
     #   -r requirements/quality.txt
@@ -211,11 +211,11 @@ pluggy==1.4.0
     #   tox
 polib==1.2.0
     # via edx-i18n-tools
-prompt-toolkit==3.0.43
+prompt-toolkit==3.0.48
     # via
     #   -r requirements/quality.txt
     #   click-repl
-psutil==5.9.8
+psutil==6.1.1
     # via
     #   -r requirements/quality.txt
     #   edx-django-utils
@@ -223,17 +223,17 @@ py==1.11.0
     # via
     #   -r requirements/ci.txt
     #   tox
-pycodestyle==2.11.1
+pycodestyle==2.12.1
     # via -r requirements/quality.txt
-pycparser==2.21
+pycparser==2.22
     # via
     #   -r requirements/quality.txt
     #   cffi
 pydocstyle==6.3.0
     # via -r requirements/quality.txt
-pygments==2.17.2
+pygments==2.18.0
     # via diff-cover
-pylint==3.1.0
+pylint==3.3.2
     # via
     #   -r requirements/quality.txt
     #   edx-lint
@@ -244,7 +244,7 @@ pylint-celery==0.3
     # via
     #   -r requirements/quality.txt
     #   edx-lint
-pylint-django==2.5.5
+pylint-django==2.6.1
     # via
     #   -r requirements/quality.txt
     #   edx-lint
@@ -253,7 +253,7 @@ pylint-plugin-utils==0.8.2
     #   -r requirements/quality.txt
     #   pylint-celery
     #   pylint-django
-pymongo==3.13.0
+pymongo==4.10.1
     # via
     #   -r requirements/quality.txt
     #   edx-opaque-keys
@@ -261,21 +261,21 @@ pynacl==1.5.0
     # via
     #   -r requirements/quality.txt
     #   edx-django-utils
-pyproject-hooks==1.0.0
+pyproject-hooks==1.2.0
     # via
     #   -r requirements/pip-tools.txt
     #   build
     #   pip-tools
-pytest==8.0.2
+pytest==8.3.4
     # via
     #   -r requirements/quality.txt
     #   pytest-cov
     #   pytest-django
-pytest-cov==4.1.0
+pytest-cov==6.0.0
     # via -r requirements/quality.txt
-pytest-django==4.8.0
+pytest-django==4.9.0
     # via -r requirements/quality.txt
-python-dateutil==2.8.2
+python-dateutil==2.9.0.post0
     # via
     #   -r requirements/quality.txt
     #   celery
@@ -283,21 +283,18 @@ python-slugify==8.0.4
     # via
     #   -r requirements/quality.txt
     #   code-annotations
-pytz==2024.1
-    # via
-    #   -r requirements/quality.txt
-    #   django
-pyyaml==6.0.1
+pyyaml==6.0.2
     # via
     #   -r requirements/quality.txt
     #   code-annotations
     #   edx-i18n-tools
-requests==2.31.0
+requests==2.32.3
     # via -r requirements/quality.txt
-six==1.16.0
+six==1.17.0
     # via
     #   -r requirements/ci.txt
     #   -r requirements/quality.txt
+    #   edx-ccx-keys
     #   edx-lint
     #   python-dateutil
     #   tox
@@ -305,11 +302,11 @@ snowballstemmer==2.2.0
     # via
     #   -r requirements/quality.txt
     #   pydocstyle
-sqlparse==0.4.4
+sqlparse==0.5.3
     # via
     #   -r requirements/quality.txt
     #   django
-stevedore==5.2.0
+stevedore==5.4.0
     # via
     #   -r requirements/quality.txt
     #   code-annotations
@@ -319,19 +316,7 @@ text-unidecode==1.3
     # via
     #   -r requirements/quality.txt
     #   python-slugify
-tomli==2.0.1
-    # via
-    #   -r requirements/ci.txt
-    #   -r requirements/pip-tools.txt
-    #   -r requirements/quality.txt
-    #   build
-    #   coverage
-    #   pip-tools
-    #   pylint
-    #   pyproject-hooks
-    #   pytest
-    #   tox
-tomlkit==0.12.3
+tomlkit==0.13.2
     # via
     #   -r requirements/quality.txt
     #   pylint
@@ -341,20 +326,16 @@ tox==3.28.0
     #   tox-battery
 tox-battery==0.6.2
     # via -r requirements/ci.txt
-typing-extensions==4.10.0
+typing-extensions==4.12.2
     # via
     #   -r requirements/quality.txt
-    #   asgiref
-    #   astroid
     #   edx-opaque-keys
-    #   kombu
-    #   pylint
-tzdata==2024.1
+tzdata==2024.2
     # via
     #   -r requirements/quality.txt
-    #   backports-zoneinfo
     #   celery
-urllib3==2.2.1
+    #   kombu
+urllib3==2.3.0
     # via
     #   -r requirements/quality.txt
     #   requests
@@ -364,7 +345,7 @@ vine==5.1.0
     #   amqp
     #   celery
     #   kombu
-virtualenv==20.25.1
+virtualenv==20.28.0
     # via
     #   -r requirements/ci.txt
     #   tox
@@ -372,14 +353,10 @@ wcwidth==0.2.13
     # via
     #   -r requirements/quality.txt
     #   prompt-toolkit
-wheel==0.42.0
+wheel==0.45.1
     # via
     #   -r requirements/pip-tools.txt
     #   pip-tools
-zipp==3.17.0
-    # via
-    #   -r requirements/pip-tools.txt
-    #   importlib-metadata
 
 # The following packages are considered to be unsafe in a requirements file:
 # pip
diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt
index 44c48d9..5461e43 100644
--- a/requirements/pip-tools.txt
+++ b/requirements/pip-tools.txt
@@ -1,32 +1,23 @@
 #
-# This file is autogenerated by pip-compile with Python 3.8
+# This file is autogenerated by pip-compile with Python 3.11
 # by the following command:
 #
 #    make upgrade
 #
-build==1.0.3
+build==1.2.2.post1
     # via pip-tools
-click==8.1.7
+click==8.1.8
     # via pip-tools
-importlib-metadata==7.0.1
+packaging==24.2
     # via build
-packaging==23.2
-    # via build
-pip-tools==7.4.0
+pip-tools==7.4.1
     # via -r requirements/pip-tools.in
-pyproject-hooks==1.0.0
-    # via
-    #   build
-    #   pip-tools
-tomli==2.0.1
+pyproject-hooks==1.2.0
     # via
     #   build
     #   pip-tools
-    #   pyproject-hooks
-wheel==0.42.0
+wheel==0.45.1
     # via pip-tools
-zipp==3.17.0
-    # via importlib-metadata
 
 # The following packages are considered to be unsafe in a requirements file:
 # pip
diff --git a/requirements/pip.txt b/requirements/pip.txt
index 6665603..25d1d69 100644
--- a/requirements/pip.txt
+++ b/requirements/pip.txt
@@ -1,14 +1,16 @@
 #
-# This file is autogenerated by pip-compile with Python 3.8
+# This file is autogenerated by pip-compile with Python 3.11
 # by the following command:
 #
 #    make upgrade
 #
-wheel==0.42.0
+wheel==0.45.1
     # via -r requirements/pip.in
 
 # The following packages are considered to be unsafe in a requirements file:
-pip==24.0
-    # via -r requirements/pip.in
-setuptools==69.1.1
+pip==24.2
+    # via
+    #   -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt
+    #   -r requirements/pip.in
+setuptools==75.6.0
     # via -r requirements/pip.in
diff --git a/requirements/quality.txt b/requirements/quality.txt
index 5ea5d63..28a2d10 100644
--- a/requirements/quality.txt
+++ b/requirements/quality.txt
@@ -1,49 +1,44 @@
 #
-# This file is autogenerated by pip-compile with Python 3.8
+# This file is autogenerated by pip-compile with Python 3.11
 # by the following command:
 #
 #    make upgrade
 #
-amqp==5.2.0
+amqp==5.3.1
     # via
     #   -r requirements/test.txt
     #   kombu
-asgiref==3.7.2
+asgiref==3.8.1
     # via
     #   -r requirements/test.txt
     #   django
-astroid==3.1.0
+astroid==3.3.7
     # via
     #   pylint
     #   pylint-celery
-attrs==23.2.0
+attrs==24.3.0
     # via
     #   -r requirements/test.txt
     #   openedx-events
-backports-zoneinfo[tzdata]==0.2.1
+billiard==4.2.1
     # via
     #   -r requirements/test.txt
     #   celery
-    #   kombu
-billiard==4.2.0
-    # via
-    #   -r requirements/test.txt
-    #   celery
-celery==5.3.6
+celery==5.4.0
     # via -r requirements/test.txt
-certifi==2024.2.2
+certifi==2024.12.14
     # via
     #   -r requirements/test.txt
     #   requests
-cffi==1.16.0
+cffi==1.17.1
     # via
     #   -r requirements/test.txt
     #   pynacl
-charset-normalizer==3.3.2
+charset-normalizer==3.4.0
     # via
     #   -r requirements/test.txt
     #   requests
-click==8.1.7
+click==8.1.8
     # via
     #   -r requirements/test.txt
     #   celery
@@ -54,7 +49,7 @@ click==8.1.7
     #   code-annotations
     #   edx-django-utils
     #   edx-lint
-click-didyoumean==0.3.0
+click-didyoumean==0.3.1
     # via
     #   -r requirements/test.txt
     #   celery
@@ -68,17 +63,17 @@ click-repl==0.3.0
     # via
     #   -r requirements/test.txt
     #   celery
-code-annotations==1.6.0
+code-annotations==2.1.0
     # via
     #   -r requirements/test.txt
     #   edx-lint
-coverage[toml]==7.4.3
+coverage[toml]==7.6.9
     # via
     #   -r requirements/test.txt
     #   pytest-cov
-dill==0.3.8
+dill==0.3.9
     # via pylint
-django==3.2.24
+django==4.2.17
     # via
     #   -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt
     #   -r requirements/test.txt
@@ -90,29 +85,34 @@ django-crum==0.7.9
     # via
     #   -r requirements/test.txt
     #   edx-django-utils
-django-waffle==4.1.0
+django-waffle==4.2.0
     # via
     #   -r requirements/test.txt
     #   edx-django-utils
-edx-django-utils==5.10.1
+dnspython==2.7.0
+    # via
+    #   -r requirements/test.txt
+    #   pymongo
+edx-ccx-keys==2.0.2
     # via
     #   -r requirements/test.txt
     #   openedx-events
-edx-lint==5.3.6
-    # via -r requirements/quality.in
-edx-opaque-keys[django]==2.5.1
+edx-django-utils==7.1.0
     # via
     #   -r requirements/test.txt
     #   openedx-events
-exceptiongroup==1.2.0
+edx-lint==5.4.1
+    # via -r requirements/quality.in
+edx-opaque-keys[django]==2.11.0
     # via
     #   -r requirements/test.txt
-    #   pytest
-fastavro==1.9.4
+    #   edx-ccx-keys
+    #   openedx-events
+fastavro==1.10.0
     # via
     #   -r requirements/test.txt
     #   openedx-events
-idna==3.6
+idna==3.10
     # via
     #   -r requirements/test.txt
     #   requests
@@ -124,57 +124,57 @@ isort==5.13.2
     # via
     #   -r requirements/quality.in
     #   pylint
-jinja2==3.1.3
+jinja2==3.1.5
     # via
     #   -r requirements/test.txt
     #   code-annotations
-kombu==5.3.5
+kombu==5.4.2
     # via
     #   -r requirements/test.txt
     #   celery
-markupsafe==2.1.5
+markupsafe==3.0.2
     # via
     #   -r requirements/test.txt
     #   jinja2
 mccabe==0.7.0
     # via pylint
-newrelic==9.7.0
+newrelic==10.4.0
     # via
     #   -r requirements/test.txt
     #   edx-django-utils
-openedx-events==9.5.2
+openedx-events==9.15.0
     # via -r requirements/test.txt
-packaging==23.2
+packaging==24.2
     # via
     #   -r requirements/test.txt
     #   pytest
-pbr==6.0.0
+pbr==6.1.0
     # via
     #   -r requirements/test.txt
     #   stevedore
-platformdirs==4.2.0
+platformdirs==4.3.6
     # via pylint
-pluggy==1.4.0
+pluggy==1.5.0
     # via
     #   -r requirements/test.txt
     #   pytest
-prompt-toolkit==3.0.43
+prompt-toolkit==3.0.48
     # via
     #   -r requirements/test.txt
     #   click-repl
-psutil==5.9.8
+psutil==6.1.1
     # via
     #   -r requirements/test.txt
     #   edx-django-utils
-pycodestyle==2.11.1
+pycodestyle==2.12.1
     # via -r requirements/quality.in
-pycparser==2.21
+pycparser==2.22
     # via
     #   -r requirements/test.txt
     #   cffi
 pydocstyle==6.3.0
     # via -r requirements/quality.in
-pylint==3.1.0
+pylint==3.3.2
     # via
     #   edx-lint
     #   pylint-celery
@@ -182,13 +182,13 @@ pylint==3.1.0
     #   pylint-plugin-utils
 pylint-celery==0.3
     # via edx-lint
-pylint-django==2.5.5
+pylint-django==2.6.1
     # via edx-lint
 pylint-plugin-utils==0.8.2
     # via
     #   pylint-celery
     #   pylint-django
-pymongo==3.13.0
+pymongo==4.10.1
     # via
     #   -r requirements/test.txt
     #   edx-opaque-keys
@@ -196,16 +196,16 @@ pynacl==1.5.0
     # via
     #   -r requirements/test.txt
     #   edx-django-utils
-pytest==8.0.2
+pytest==8.3.4
     # via
     #   -r requirements/test.txt
     #   pytest-cov
     #   pytest-django
-pytest-cov==4.1.0
+pytest-cov==6.0.0
     # via -r requirements/test.txt
-pytest-django==4.8.0
+pytest-django==4.9.0
     # via -r requirements/test.txt
-python-dateutil==2.8.2
+python-dateutil==2.9.0.post0
     # via
     #   -r requirements/test.txt
     #   celery
@@ -213,28 +213,25 @@ python-slugify==8.0.4
     # via
     #   -r requirements/test.txt
     #   code-annotations
-pytz==2024.1
-    # via
-    #   -r requirements/test.txt
-    #   django
-pyyaml==6.0.1
+pyyaml==6.0.2
     # via
     #   -r requirements/test.txt
     #   code-annotations
-requests==2.31.0
+requests==2.32.3
     # via -r requirements/test.txt
-six==1.16.0
+six==1.17.0
     # via
     #   -r requirements/test.txt
+    #   edx-ccx-keys
     #   edx-lint
     #   python-dateutil
 snowballstemmer==2.2.0
     # via pydocstyle
-sqlparse==0.4.4
+sqlparse==0.5.3
     # via
     #   -r requirements/test.txt
     #   django
-stevedore==5.2.0
+stevedore==5.4.0
     # via
     #   -r requirements/test.txt
     #   code-annotations
@@ -244,28 +241,18 @@ text-unidecode==1.3
     # via
     #   -r requirements/test.txt
     #   python-slugify
-tomli==2.0.1
-    # via
-    #   -r requirements/test.txt
-    #   coverage
-    #   pylint
-    #   pytest
-tomlkit==0.12.3
+tomlkit==0.13.2
     # via pylint
-typing-extensions==4.10.0
+typing-extensions==4.12.2
     # via
     #   -r requirements/test.txt
-    #   asgiref
-    #   astroid
     #   edx-opaque-keys
-    #   kombu
-    #   pylint
-tzdata==2024.1
+tzdata==2024.2
     # via
     #   -r requirements/test.txt
-    #   backports-zoneinfo
     #   celery
-urllib3==2.2.1
+    #   kombu
+urllib3==2.3.0
     # via
     #   -r requirements/test.txt
     #   requests
diff --git a/requirements/test.txt b/requirements/test.txt
index 3d7ad02..93e8647 100644
--- a/requirements/test.txt
+++ b/requirements/test.txt
@@ -1,45 +1,40 @@
 #
-# This file is autogenerated by pip-compile with Python 3.8
+# This file is autogenerated by pip-compile with Python 3.11
 # by the following command:
 #
 #    make upgrade
 #
-amqp==5.2.0
+amqp==5.3.1
     # via
     #   -r requirements/base.txt
     #   kombu
-asgiref==3.7.2
+asgiref==3.8.1
     # via
     #   -r requirements/base.txt
     #   django
-attrs==23.2.0
+attrs==24.3.0
     # via
     #   -r requirements/base.txt
     #   openedx-events
-backports-zoneinfo[tzdata]==0.2.1
+billiard==4.2.1
     # via
     #   -r requirements/base.txt
     #   celery
-    #   kombu
-billiard==4.2.0
-    # via
-    #   -r requirements/base.txt
-    #   celery
-celery==5.3.6
+celery==5.4.0
     # via -r requirements/base.txt
-certifi==2024.2.2
+certifi==2024.12.14
     # via
     #   -r requirements/base.txt
     #   requests
-cffi==1.16.0
+cffi==1.17.1
     # via
     #   -r requirements/base.txt
     #   pynacl
-charset-normalizer==3.3.2
+charset-normalizer==3.4.0
     # via
     #   -r requirements/base.txt
     #   requests
-click==8.1.7
+click==8.1.8
     # via
     #   -r requirements/base.txt
     #   celery
@@ -48,7 +43,7 @@ click==8.1.7
     #   click-repl
     #   code-annotations
     #   edx-django-utils
-click-didyoumean==0.3.0
+click-didyoumean==0.3.1
     # via
     #   -r requirements/base.txt
     #   celery
@@ -60,9 +55,9 @@ click-repl==0.3.0
     # via
     #   -r requirements/base.txt
     #   celery
-code-annotations==1.6.0
+code-annotations==2.1.0
     # via -r requirements/test.in
-coverage[toml]==7.4.3
+coverage[toml]==7.6.9
     # via pytest-cov
     # via
     #   -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt
@@ -75,64 +70,71 @@ django-crum==0.7.9
     # via
     #   -r requirements/base.txt
     #   edx-django-utils
-django-waffle==4.1.0
+django-waffle==4.2.0
     # via
     #   -r requirements/base.txt
     #   edx-django-utils
-edx-django-utils==5.10.1
+dnspython==2.7.0
+    # via
+    #   -r requirements/base.txt
+    #   pymongo
+edx-ccx-keys==2.0.2
     # via
     #   -r requirements/base.txt
     #   openedx-events
-edx-opaque-keys[django]==2.5.1
+edx-django-utils==7.1.0
     # via
     #   -r requirements/base.txt
     #   openedx-events
-exceptiongroup==1.2.0
-    # via pytest
-fastavro==1.9.4
+edx-opaque-keys[django]==2.11.0
+    # via
+    #   -r requirements/base.txt
+    #   edx-ccx-keys
+    #   openedx-events
+fastavro==1.10.0
     # via
     #   -r requirements/base.txt
     #   openedx-events
-idna==3.6
+idna==3.10
     # via
     #   -r requirements/base.txt
     #   requests
 iniconfig==2.0.0
     # via pytest
-jinja2==3.1.3
+jinja2==3.1.5
     # via code-annotations
-kombu==5.3.5
+kombu==5.4.2
     # via
     #   -r requirements/base.txt
     #   celery
-markupsafe==2.1.5
+markupsafe==3.0.2
     # via jinja2
-newrelic==9.7.0
+newrelic==10.4.0
     # via
     #   -r requirements/base.txt
     #   edx-django-utils
     # via -r requirements/base.txt
-packaging==23.2
+packaging==24.2
     # via pytest
-pbr==6.0.0
+pbr==6.1.0
     # via
     #   -r requirements/base.txt
     #   stevedore
-pluggy==1.4.0
+pluggy==1.5.0
     # via pytest
-prompt-toolkit==3.0.43
+prompt-toolkit==3.0.48
     # via
     #   -r requirements/base.txt
     #   click-repl
-psutil==5.9.8
+psutil==6.1.1
     # via
     #   -r requirements/base.txt
     #   edx-django-utils
-pycparser==2.21
+pycparser==2.22
     # via
     #   -r requirements/base.txt
     #   cffi
-pymongo==3.13.0
+pymongo==4.10.1
     # via
     #   -r requirements/base.txt
     #   edx-opaque-keys
@@ -140,37 +142,34 @@ pynacl==1.5.0
     # via
     #   -r requirements/base.txt
     #   edx-django-utils
-pytest==8.0.2
+pytest==8.3.4
     # via
     #   pytest-cov
     #   pytest-django
-pytest-cov==4.1.0
+pytest-cov==6.0.0
     # via -r requirements/test.in
-pytest-django==4.8.0
+pytest-django==4.9.0
     # via -r requirements/test.in
-python-dateutil==2.8.2
+python-dateutil==2.9.0.post0
     # via
     #   -r requirements/base.txt
     #   celery
 python-slugify==8.0.4
     # via code-annotations
-pytz==2024.1
-    # via
-    #   -r requirements/base.txt
-    #   django
-pyyaml==6.0.1
+pyyaml==6.0.2
     # via code-annotations
-requests==2.31.0
+requests==2.32.3
     # via -r requirements/base.txt
-six==1.16.0
+six==1.17.0
     # via
     #   -r requirements/base.txt
+    #   edx-ccx-keys
     #   python-dateutil
-sqlparse==0.4.4
+sqlparse==0.5.3
     # via
     #   -r requirements/base.txt
     #   django
-stevedore==5.2.0
+stevedore==5.4.0
     # via
     #   -r requirements/base.txt
     #   code-annotations
@@ -178,22 +177,16 @@ stevedore==5.2.0
     #   edx-opaque-keys
 text-unidecode==1.3
     # via python-slugify
-tomli==2.0.1
-    # via
-    #   coverage
-    #   pytest
-typing-extensions==4.10.0
+typing-extensions==4.12.2
     # via
     #   -r requirements/base.txt
-    #   asgiref
     #   edx-opaque-keys
-    #   kombu
-tzdata==2024.1
+tzdata==2024.2
     # via
     #   -r requirements/base.txt
-    #   backports-zoneinfo
     #   celery
-urllib3==2.2.1
+    #   kombu
+urllib3==2.3.0
     # via
     #   -r requirements/base.txt
     #   requests