diff --git a/requirements/base.txt b/requirements/base.txt
index a8a8dba..663242c 100644
--- a/requirements/base.txt
+++ b/requirements/base.txt
@@ -4,11 +4,15 @@
 #
 #    make upgrade
 #
-asgiref==3.7.2
+asgiref==3.8.1
     # via django
-certifi==2024.2.2
+backports-zoneinfo==0.2.1
+    # via
+    #   django
+    #   djangorestframework
+certifi==2024.7.4
     # via requests
-cffi==1.16.0
+cffi==1.17.0
     # via
     #   cryptography
     #   pynacl
@@ -16,9 +20,9 @@ charset-normalizer==3.3.2
     # via requests
 click==8.1.7
     # via edx-django-utils
-cryptography==42.0.5
+cryptography==43.0.0
     # via pyjwt
-django==3.2.24
+django==4.2.15
     # via
     #   -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt
     #   -r requirements/base.in
@@ -32,7 +36,7 @@ django==3.2.24
     #   edx-organizations
 django-crum==0.7.9
     # via edx-django-utils
-django-model-utils==4.4.0
+django-model-utils==4.5.1
     # via
     #   -r requirements/base.in
     #   edx-organizations
@@ -46,64 +50,65 @@ django-waffle==4.1.0
     # via
     #   edx-django-utils
     #   edx-drf-extensions
-djangorestframework==3.14.0
+djangorestframework==3.15.2
     # via
     #   -r requirements/base.in
     #   drf-jwt
     #   edx-drf-extensions
     #   edx-organizations
+dnspython==2.6.1
+    # via pymongo
 drf-jwt==1.19.2
     # via edx-drf-extensions
-edx-django-utils==5.10.1
+edx-django-utils==5.15.0
     # via
     #   -r requirements/base.in
     #   edx-drf-extensions
-edx-drf-extensions==10.2.0
+edx-drf-extensions==10.3.0
     # via edx-organizations
-edx-opaque-keys==2.5.1
+edx-opaque-keys==2.10.0
     # via
     #   -r requirements/base.in
     #   edx-drf-extensions
     #   edx-organizations
-edx-organizations==6.12.1
+edx-organizations==6.13.0
     # via -r requirements/base.in
-idna==3.6
+idna==3.8
     # via requests
-newrelic==9.7.0
+newrelic==9.13.0
     # via edx-django-utils
 pbr==6.0.0
     # via stevedore
-pillow==10.2.0
+pillow==10.4.0
     # via edx-organizations
-psutil==5.9.8
+psutil==6.0.0
     # via edx-django-utils
-pycparser==2.21
+pycparser==2.22
     # via cffi
-pyjwt[crypto]==2.8.0
+pyjwt[crypto]==2.9.0
     # via
     #   drf-jwt
     #   edx-drf-extensions
-pymongo==3.13.0
+pymongo==4.8.0
     # via edx-opaque-keys
 pynacl==1.5.0
     # via edx-django-utils
-pytz==2024.1
-    # via
-    #   django
-    #   djangorestframework
-requests==2.31.0
+requests==2.32.3
     # via edx-drf-extensions
 semantic-version==2.10.0
     # via edx-drf-extensions
-sqlparse==0.4.4
+sqlparse==0.5.1
     # via django
-stevedore==5.2.0
+stevedore==5.3.0
     # via
     #   edx-django-utils
     #   edx-opaque-keys
-typing-extensions==4.10.0
+typing-extensions==4.12.2
     # via
     #   asgiref
     #   edx-opaque-keys
-urllib3==2.2.1
+urllib3==2.2.2
     # via requests
+
+# The following packages are considered to be unsafe in a requirements file:
+# setuptools
diff --git a/requirements/ci.txt b/requirements/ci.txt
index e7a8760..b148a4e 100644
--- a/requirements/ci.txt
+++ b/requirements/ci.txt
@@ -4,7 +4,7 @@
 #
 #    make upgrade
 #
-cachetools==5.3.2
+cachetools==5.5.0
     # via tox
 chardet==5.2.0
     # via tox
@@ -12,27 +12,27 @@ colorama==0.4.6
     # via tox
 distlib==0.3.8
     # via virtualenv
-filelock==3.13.1
+filelock==3.15.4
     # via
     #   tox
     #   virtualenv
-packaging==23.2
+packaging==24.1
     # via
     #   pyproject-api
     #   tox
-platformdirs==4.2.0
+platformdirs==4.2.2
     # via
     #   tox
     #   virtualenv
-pluggy==1.4.0
+pluggy==1.5.0
     # via tox
-pyproject-api==1.6.1
+pyproject-api==1.7.1
     # via tox
 tomli==2.0.1
     # via
     #   pyproject-api
     #   tox
-tox==4.13.0
+tox==4.18.0
     # via -r requirements/ci.in
-virtualenv==20.25.1
+virtualenv==20.26.3
     # via tox
diff --git a/requirements/dev.txt b/requirements/dev.txt
index a6190bf..72907fa 100644
--- a/requirements/dev.txt
+++ b/requirements/dev.txt
@@ -4,28 +4,33 @@
 #
 #    make upgrade
 #
-asgiref==3.7.2
+asgiref==3.8.1
     # via
     #   -r requirements/quality.txt
     #   django
-astroid==3.1.0
+astroid==3.2.4
     # via
     #   -r requirements/quality.txt
     #   pylint
     #   pylint-celery
-build==1.0.3
+backports-zoneinfo==0.2.1
+    # via
+    #   -r requirements/quality.txt
+    #   django
+    #   djangorestframework
+build==1.2.1
     # via
     #   -r requirements/pip-tools.txt
     #   pip-tools
-cachetools==5.3.2
+cachetools==5.5.0
     # via
     #   -r requirements/ci.txt
     #   tox
-certifi==2024.2.2
+certifi==2024.7.4
     # via
     #   -r requirements/quality.txt
     #   requests
-cffi==1.16.0
+cffi==1.17.0
     # via
     #   -r requirements/quality.txt
     #   cryptography
@@ -52,7 +57,7 @@ click-log==0.4.0
     # via
     #   -r requirements/quality.txt
     #   edx-lint
-code-annotations==1.6.0
+code-annotations==1.8.0
     # via
     #   -r requirements/quality.txt
     #   edx-lint
@@ -60,15 +65,15 @@ colorama==0.4.6
     # via
     #   -r requirements/ci.txt
     #   tox
-coverage[toml]==7.4.3
+coverage[toml]==7.6.1
     # via
     #   -r requirements/quality.txt
     #   pytest-cov
-cryptography==42.0.5
+cryptography==43.0.0
     # via
     #   -r requirements/quality.txt
     #   pyjwt
-diff-cover==8.0.3
+diff-cover==9.1.1
     # via -r requirements/dev.in
 dill==0.3.8
     # via
@@ -78,7 +83,7 @@ distlib==0.3.8
     # via
     #   -r requirements/ci.txt
     #   virtualenv
-django==3.2.24
+django==4.2.15
     # via
     #   -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt
     #   -r requirements/quality.txt
@@ -95,7 +100,7 @@ django-crum==0.7.9
     # via
     #   -r requirements/quality.txt
     #   edx-django-utils
-django-model-utils==4.4.0
+django-model-utils==4.5.1
     # via
     #   -r requirements/quality.txt
     #   edx-organizations
@@ -111,57 +116,61 @@ django-waffle==4.1.0
     #   -r requirements/quality.txt
     #   edx-django-utils
     #   edx-drf-extensions
-djangorestframework==3.14.0
+djangorestframework==3.15.2
     # via
     #   -r requirements/quality.txt
     #   drf-jwt
     #   edx-drf-extensions
     #   edx-organizations
+dnspython==2.6.1
+    # via
+    #   -r requirements/quality.txt
+    #   pymongo
 drf-jwt==1.19.2
     # via
     #   -r requirements/quality.txt
     #   edx-drf-extensions
-edx-django-utils==5.10.1
+edx-django-utils==5.15.0
     # via
     #   -r requirements/quality.txt
     #   edx-drf-extensions
-edx-drf-extensions==10.2.0
+edx-drf-extensions==10.3.0
     # via
     #   -r requirements/quality.txt
     #   edx-organizations
-edx-i18n-tools==1.3.0
+edx-i18n-tools==1.6.2
     # via -r requirements/dev.in
-edx-lint==5.3.6
+edx-lint==5.4.0
     # via -r requirements/quality.txt
-edx-opaque-keys==2.5.1
+edx-opaque-keys==2.10.0
     # via
     #   -r requirements/quality.txt
     #   edx-drf-extensions
     #   edx-organizations
-edx-organizations==6.12.1
+edx-organizations==6.13.0
     # via -r requirements/quality.txt
-exceptiongroup==1.2.0
+exceptiongroup==1.2.2
     # via
     #   -r requirements/quality.txt
     #   pytest
-factory-boy==3.3.0
+factory-boy==3.3.1
     # via -r requirements/quality.txt
-faker==23.2.1
+faker==28.0.0
     # via
     #   -r requirements/quality.txt
     #   factory-boy
-filelock==3.13.1
+filelock==3.15.4
     # via
     #   -r requirements/ci.txt
     #   tox
     #   virtualenv
-freezegun==1.4.0
+freezegun==1.5.1
     # via -r requirements/quality.txt
-idna==3.6
+idna==3.8
     # via
     #   -r requirements/quality.txt
     #   requests
-importlib-metadata==7.0.1
+importlib-metadata==8.4.0
     # via
     #   -r requirements/pip-tools.txt
     #   build
@@ -173,12 +182,12 @@ isort==5.13.2
     # via
     #   -r requirements/quality.txt
     #   pylint
-jinja2==3.1.3
+jinja2==3.1.4
     # via
     #   -r requirements/quality.txt
     #   code-annotations
     #   diff-cover
-lxml==5.1.0
+lxml==5.3.0
     # via edx-i18n-tools
 markupsafe==2.1.5
     # via
@@ -188,11 +197,11 @@ mccabe==0.7.0
     # via
     #   -r requirements/quality.txt
     #   pylint
-newrelic==9.7.0
+newrelic==9.13.0
     # via
     #   -r requirements/quality.txt
     #   edx-django-utils
-packaging==23.2
+packaging==24.1
     # via
     #   -r requirements/ci.txt
     #   -r requirements/pip-tools.txt
@@ -201,26 +210,26 @@ packaging==23.2
     #   pyproject-api
     #   pytest
     #   tox
-path==16.10.0
+path==16.16.0
     # via edx-i18n-tools
 pbr==6.0.0
     # via
     #   -r requirements/quality.txt
     #   stevedore
-pillow==10.2.0
+pillow==10.4.0
     # via
     #   -r requirements/quality.txt
     #   edx-organizations
-pip-tools==7.4.0
+pip-tools==7.4.1
     # via -r requirements/pip-tools.txt
-platformdirs==4.2.0
+platformdirs==4.2.2
     # via
     #   -r requirements/ci.txt
     #   -r requirements/quality.txt
     #   pylint
     #   tox
     #   virtualenv
-pluggy==1.4.0
+pluggy==1.5.0
     # via
     #   -r requirements/ci.txt
     #   -r requirements/quality.txt
@@ -229,26 +238,26 @@ pluggy==1.4.0
     #   tox
 polib==1.2.0
     # via edx-i18n-tools
-psutil==5.9.8
+psutil==6.0.0
     # via
     #   -r requirements/quality.txt
     #   edx-django-utils
-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
-pyjwt[crypto]==2.8.0
+pyjwt[crypto]==2.9.0
     # via
     #   -r requirements/quality.txt
     #   drf-jwt
     #   edx-drf-extensions
-pylint==3.1.0
+pylint==3.2.6
     # via
     #   -r requirements/quality.txt
     #   edx-lint
@@ -268,7 +277,7 @@ pylint-plugin-utils==0.8.2
     #   -r requirements/quality.txt
     #   pylint-celery
     #   pylint-django
-pymongo==3.13.0
+pymongo==4.8.0
     # via
     #   -r requirements/quality.txt
     #   edx-opaque-keys
@@ -276,25 +285,25 @@ pynacl==1.5.0
     # via
     #   -r requirements/quality.txt
     #   edx-django-utils
-pyproject-api==1.6.1
+pyproject-api==1.7.1
     # via
     #   -r requirements/ci.txt
     #   tox
-pyproject-hooks==1.0.0
+pyproject-hooks==1.1.0
     # via
     #   -r requirements/pip-tools.txt
     #   build
     #   pip-tools
-pytest==8.0.2
+pytest==8.3.2
     # via
     #   -r requirements/quality.txt
     #   pytest-cov
     #   pytest-django
-pytest-cov==4.1.0
+pytest-cov==5.0.0
     # via -r requirements/quality.txt
 pytest-django==4.8.0
     # via -r requirements/quality.txt
-python-dateutil==2.8.2
+python-dateutil==2.9.0.post0
     # via
     #   -r requirements/quality.txt
     #   faker
@@ -303,17 +312,12 @@ python-slugify==8.0.4
     # via
     #   -r requirements/quality.txt
     #   code-annotations
-pytz==2024.1
-    # via
-    #   -r requirements/quality.txt
-    #   django
-    #   djangorestframework
-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
     #   edx-drf-extensions
@@ -330,11 +334,11 @@ snowballstemmer==2.2.0
     # via
     #   -r requirements/quality.txt
     #   pydocstyle
-sqlparse==0.4.4
+sqlparse==0.5.1
     # via
     #   -r requirements/quality.txt
     #   django
-stevedore==5.2.0
+stevedore==5.3.0
     # via
     #   -r requirements/quality.txt
     #   code-annotations
@@ -354,36 +358,34 @@ tomli==2.0.1
     #   pip-tools
     #   pylint
     #   pyproject-api
-    #   pyproject-hooks
     #   pytest
     #   tox
-tomlkit==0.12.3
+tomlkit==0.13.2
     # via
     #   -r requirements/quality.txt
     #   pylint
-tox==4.13.0
+tox==4.18.0
     # 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
-    #   faker
     #   pylint
-urllib3==2.2.1
+urllib3==2.2.2
     # via
     #   -r requirements/quality.txt
     #   requests
-virtualenv==20.25.1
+virtualenv==20.26.3
     # via
     #   -r requirements/ci.txt
     #   tox
-wheel==0.42.0
+wheel==0.44.0
     # via
     #   -r requirements/pip-tools.txt
     #   pip-tools
-zipp==3.17.0
+zipp==3.20.0
     # via
     #   -r requirements/pip-tools.txt
     #   importlib-metadata
diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt
index 44c48d9..24ccd39 100644
--- a/requirements/pip-tools.txt
+++ b/requirements/pip-tools.txt
@@ -4,17 +4,17 @@
 #
 #    make upgrade
 #
-build==1.0.3
+build==1.2.1
     # via pip-tools
 click==8.1.7
     # via pip-tools
-importlib-metadata==7.0.1
+importlib-metadata==8.4.0
     # via build
-packaging==23.2
+packaging==24.1
     # via build
-pip-tools==7.4.0
+pip-tools==7.4.1
     # via -r requirements/pip-tools.in
-pyproject-hooks==1.0.0
+pyproject-hooks==1.1.0
     # via
     #   build
     #   pip-tools
@@ -22,10 +22,9 @@ tomli==2.0.1
     # via
     #   build
     #   pip-tools
-    #   pyproject-hooks
-wheel==0.42.0
+wheel==0.44.0
     # via pip-tools
-zipp==3.17.0
+zipp==3.20.0
     # via importlib-metadata
 
 # The following packages are considered to be unsafe in a requirements file:
diff --git a/requirements/pip.txt b/requirements/pip.txt
index 6665603..88e142d 100644
--- a/requirements/pip.txt
+++ b/requirements/pip.txt
@@ -4,11 +4,11 @@
 #
 #    make upgrade
 #
-wheel==0.42.0
+wheel==0.44.0
     # via -r requirements/pip.in
 
 # The following packages are considered to be unsafe in a requirements file:
-pip==24.0
+pip==24.2
     # via -r requirements/pip.in
-setuptools==69.1.1
+setuptools==73.0.1
     # via -r requirements/pip.in
diff --git a/requirements/quality.txt b/requirements/quality.txt
index 5781f7f..3fc547a 100644
--- a/requirements/quality.txt
+++ b/requirements/quality.txt
@@ -4,19 +4,24 @@
 #
 #    make upgrade
 #
-asgiref==3.7.2
+asgiref==3.8.1
     # via
     #   -r requirements/test.txt
     #   django
-astroid==3.1.0
+astroid==3.2.4
     # via
     #   pylint
     #   pylint-celery
-certifi==2024.2.2
+backports-zoneinfo==0.2.1
+    # via
+    #   -r requirements/test.txt
+    #   django
+    #   djangorestframework
+certifi==2024.7.4
     # via
     #   -r requirements/test.txt
     #   requests
-cffi==1.16.0
+cffi==1.17.0
     # via
     #   -r requirements/test.txt
     #   cryptography
@@ -34,21 +39,21 @@ click==8.1.7
     #   edx-lint
 click-log==0.4.0
     # via edx-lint
-code-annotations==1.6.0
+code-annotations==1.8.0
     # via
     #   -r requirements/test.txt
     #   edx-lint
-coverage[toml]==7.4.3
+coverage[toml]==7.6.1
     # via
     #   -r requirements/test.txt
     #   pytest-cov
-cryptography==42.0.5
+cryptography==43.0.0
     # via
     #   -r requirements/test.txt
     #   pyjwt
 dill==0.3.8
     # via pylint
-django==3.2.24
+django==4.2.15
     # via
     #   -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt
     #   -r requirements/test.txt
@@ -64,7 +69,7 @@ django-crum==0.7.9
     # via
     #   -r requirements/test.txt
     #   edx-django-utils
-django-model-utils==4.4.0
+django-model-utils==4.5.1
     # via
     #   -r requirements/test.txt
     #   edx-organizations
@@ -80,46 +85,50 @@ django-waffle==4.1.0
     #   -r requirements/test.txt
     #   edx-django-utils
     #   edx-drf-extensions
-djangorestframework==3.14.0
+djangorestframework==3.15.2
     # via
     #   -r requirements/test.txt
     #   drf-jwt
     #   edx-drf-extensions
     #   edx-organizations
+dnspython==2.6.1
+    # via
+    #   -r requirements/test.txt
+    #   pymongo
 drf-jwt==1.19.2
     # via
     #   -r requirements/test.txt
     #   edx-drf-extensions
-edx-django-utils==5.10.1
+edx-django-utils==5.15.0
     # via
     #   -r requirements/test.txt
     #   edx-drf-extensions
-edx-drf-extensions==10.2.0
+edx-drf-extensions==10.3.0
     # via
     #   -r requirements/test.txt
     #   edx-organizations
-edx-lint==5.3.6
+edx-lint==5.4.0
     # via -r requirements/quality.in
-edx-opaque-keys==2.5.1
+edx-opaque-keys==2.10.0
     # via
     #   -r requirements/test.txt
     #   edx-drf-extensions
     #   edx-organizations
-edx-organizations==6.12.1
+edx-organizations==6.13.0
     # via -r requirements/test.txt
-exceptiongroup==1.2.0
+exceptiongroup==1.2.2
     # via
     #   -r requirements/test.txt
     #   pytest
-factory-boy==3.3.0
+factory-boy==3.3.1
     # via -r requirements/test.txt
-faker==23.2.1
+faker==28.0.0
     # via
     #   -r requirements/test.txt
     #   factory-boy
-freezegun==1.4.0
+freezegun==1.5.1
     # via -r requirements/test.txt
-idna==3.6
+idna==3.8
     # via
     #   -r requirements/test.txt
     #   requests
@@ -131,7 +140,7 @@ isort==5.13.2
     # via
     #   -r requirements/quality.in
     #   pylint
-jinja2==3.1.3
+jinja2==3.1.4
     # via
     #   -r requirements/test.txt
     #   code-annotations
@@ -141,11 +150,11 @@ markupsafe==2.1.5
     #   jinja2
 mccabe==0.7.0
     # via pylint
-newrelic==9.7.0
+newrelic==9.13.0
     # via
     #   -r requirements/test.txt
     #   edx-django-utils
-packaging==23.2
+packaging==24.1
     # via
     #   -r requirements/test.txt
     #   pytest
@@ -153,34 +162,34 @@ pbr==6.0.0
     # via
     #   -r requirements/test.txt
     #   stevedore
-pillow==10.2.0
+pillow==10.4.0
     # via
     #   -r requirements/test.txt
     #   edx-organizations
-platformdirs==4.2.0
+platformdirs==4.2.2
     # via pylint
-pluggy==1.4.0
+pluggy==1.5.0
     # via
     #   -r requirements/test.txt
     #   pytest
-psutil==5.9.8
+psutil==6.0.0
     # 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
-pyjwt[crypto]==2.8.0
+pyjwt[crypto]==2.9.0
     # via
     #   -r requirements/test.txt
     #   drf-jwt
     #   edx-drf-extensions
-pylint==3.1.0
+pylint==3.2.6
     # via
     #   edx-lint
     #   pylint-celery
@@ -194,7 +203,7 @@ pylint-plugin-utils==0.8.2
     # via
     #   pylint-celery
     #   pylint-django
-pymongo==3.13.0
+pymongo==4.8.0
     # via
     #   -r requirements/test.txt
     #   edx-opaque-keys
@@ -202,16 +211,16 @@ pynacl==1.5.0
     # via
     #   -r requirements/test.txt
     #   edx-django-utils
-pytest==8.0.2
+pytest==8.3.2
     # via
     #   -r requirements/test.txt
     #   pytest-cov
     #   pytest-django
-pytest-cov==4.1.0
+pytest-cov==5.0.0
     # via -r requirements/test.txt
 pytest-django==4.8.0
     # via -r requirements/test.txt
-python-dateutil==2.8.2
+python-dateutil==2.9.0.post0
     # via
     #   -r requirements/test.txt
     #   faker
@@ -220,16 +229,11 @@ python-slugify==8.0.4
     # via
     #   -r requirements/test.txt
     #   code-annotations
-pytz==2024.1
-    # via
-    #   -r requirements/test.txt
-    #   django
-    #   djangorestframework
-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
     #   edx-drf-extensions
@@ -244,11 +248,11 @@ six==1.16.0
     #   python-dateutil
 snowballstemmer==2.2.0
     # via pydocstyle
-sqlparse==0.4.4
+sqlparse==0.5.1
     # via
     #   -r requirements/test.txt
     #   django
-stevedore==5.2.0
+stevedore==5.3.0
     # via
     #   -r requirements/test.txt
     #   code-annotations
@@ -264,17 +268,19 @@ tomli==2.0.1
     #   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
-    #   faker
     #   pylint
-urllib3==2.2.1
+urllib3==2.2.2
     # via
     #   -r requirements/test.txt
     #   requests
+
+# The following packages are considered to be unsafe in a requirements file:
+# setuptools
diff --git a/requirements/test.txt b/requirements/test.txt
index 1bb63f9..fcb2435 100644
--- a/requirements/test.txt
+++ b/requirements/test.txt
@@ -4,15 +4,20 @@
 #
 #    make upgrade
 #
-asgiref==3.7.2
+asgiref==3.8.1
     # via
     #   -r requirements/base.txt
     #   django
-certifi==2024.2.2
+backports-zoneinfo==0.2.1
+    # via
+    #   -r requirements/base.txt
+    #   django
+    #   djangorestframework
+certifi==2024.7.4
     # via
     #   -r requirements/base.txt
     #   requests
-cffi==1.16.0
+cffi==1.17.0
     # via
     #   -r requirements/base.txt
     #   cryptography
@@ -26,11 +31,11 @@ click==8.1.7
     #   -r requirements/base.txt
     #   code-annotations
     #   edx-django-utils
-code-annotations==1.6.0
+code-annotations==1.8.0
     # via -r requirements/test.in
-coverage[toml]==7.4.3
+coverage[toml]==7.6.1
     # via pytest-cov
-cryptography==42.0.5
+cryptography==43.0.0
     # via
     #   -r requirements/base.txt
     #   pyjwt
@@ -49,7 +54,7 @@ django-crum==0.7.9
     # via
     #   -r requirements/base.txt
     #   edx-django-utils
-django-model-utils==4.4.0
+django-model-utils==4.5.1
     # via
     #   -r requirements/base.txt
     #   edx-organizations
@@ -65,79 +70,83 @@ django-waffle==4.1.0
     #   -r requirements/base.txt
     #   edx-django-utils
     #   edx-drf-extensions
-djangorestframework==3.14.0
+djangorestframework==3.15.2
     # via
     #   -r requirements/base.txt
     #   drf-jwt
     #   edx-drf-extensions
     #   edx-organizations
+dnspython==2.6.1
+    # via
+    #   -r requirements/base.txt
+    #   pymongo
 drf-jwt==1.19.2
     # via
     #   -r requirements/base.txt
     #   edx-drf-extensions
-edx-django-utils==5.10.1
+edx-django-utils==5.15.0
     # via
     #   -r requirements/base.txt
     #   edx-drf-extensions
-edx-drf-extensions==10.2.0
+edx-drf-extensions==10.3.0
     # via
     #   -r requirements/base.txt
     #   edx-organizations
-edx-opaque-keys==2.5.1
+edx-opaque-keys==2.10.0
     # via
     #   -r requirements/base.txt
     #   edx-drf-extensions
     #   edx-organizations
-edx-organizations==6.12.1
+edx-organizations==6.13.0
     # via -r requirements/base.txt
-exceptiongroup==1.2.0
+exceptiongroup==1.2.2
     # via pytest
-factory-boy==3.3.0
+factory-boy==3.3.1
     # via -r requirements/test.in
-faker==23.2.1
+faker==28.0.0
     # via factory-boy
-freezegun==1.4.0
+freezegun==1.5.1
     # via -r requirements/test.in
-idna==3.6
+idna==3.8
     # via
     #   -r requirements/base.txt
     #   requests
 iniconfig==2.0.0
     # via pytest
-jinja2==3.1.3
+jinja2==3.1.4
     # via code-annotations
 markupsafe==2.1.5
     # via jinja2
-newrelic==9.7.0
+newrelic==9.13.0
     # via
     #   -r requirements/base.txt
     #   edx-django-utils
-packaging==23.2
+packaging==24.1
     # via pytest
 pbr==6.0.0
     # via
     #   -r requirements/base.txt
     #   stevedore
-pillow==10.2.0
+pillow==10.4.0
     # via
     #   -r requirements/base.txt
     #   edx-organizations
-pluggy==1.4.0
+pluggy==1.5.0
     # via pytest
-psutil==5.9.8
+psutil==6.0.0
     # via
     #   -r requirements/base.txt
     #   edx-django-utils
-pycparser==2.21
+pycparser==2.22
     # via
     #   -r requirements/base.txt
     #   cffi
-pyjwt[crypto]==2.8.0
+pyjwt[crypto]==2.9.0
     # via
     #   -r requirements/base.txt
     #   drf-jwt
     #   edx-drf-extensions
-pymongo==3.13.0
+pymongo==4.8.0
     # via
     #   -r requirements/base.txt
     #   edx-opaque-keys
@@ -145,28 +154,23 @@ pynacl==1.5.0
     # via
     #   -r requirements/base.txt
     #   edx-django-utils
-pytest==8.0.2
+pytest==8.3.2
     # via
     #   pytest-cov
     #   pytest-django
-pytest-cov==4.1.0
+pytest-cov==5.0.0
     # via -r requirements/test.in
 pytest-django==4.8.0
     # via -r requirements/test.in
-python-dateutil==2.8.2
+python-dateutil==2.9.0.post0
     # via
     #   faker
     #   freezegun
 python-slugify==8.0.4
     # via code-annotations
-pytz==2024.1
-    # via
-    #   -r requirements/base.txt
-    #   django
-    #   djangorestframework
-pyyaml==6.0.1
+pyyaml==6.0.2
     # via code-annotations
-requests==2.31.0
+requests==2.32.3
     # via
     #   -r requirements/base.txt
     #   edx-drf-extensions
@@ -176,11 +180,11 @@ semantic-version==2.10.0
     #   edx-drf-extensions
 six==1.16.0
     # via python-dateutil
-sqlparse==0.4.4
+sqlparse==0.5.1
     # via
     #   -r requirements/base.txt
     #   django
-stevedore==5.2.0
+stevedore==5.3.0
     # via
     #   -r requirements/base.txt
     #   code-annotations
@@ -192,13 +196,15 @@ 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
-    #   faker
-urllib3==2.2.1
+urllib3==2.2.2
     # via
     #   -r requirements/base.txt
     #   requests
+
+# The following packages are considered to be unsafe in a requirements file:
+# setuptools